在C ++中找到最接近x或a ^ b(a升为幂b)的x的倍数
假设我们有三个值,a,b和x。我们必须找到x的一个倍数,最接近b。假设数字为x=4,a=3,b=3,则输出为28,因为它最接近33=27
方法很简单;我们必须遵循这些条件-
如果b<0,且a=1,则ab变为1,因此,x的最接近倍数变为0或x。
如果b<0且a>1,则ab小于1,因此x的最接近倍数变为0。
如果b>0,则找到ab。然后令mul=ab/x的整数,则x的最接近倍数是mul*x或(mul+1)*x
示例
#include<iostream>
#include<cmath>
using namespace std;
void findMultiple(int a, int b, int x) {
cout << "Nearest multiple: ";
if (b < 0) {
if (a == 1 && x == 1)
cout << "1";
else
cout << "0";
}
int mul = pow(a, b);
int ans = mul / x;
int ans1 = x * ans;
int ans2 = x * (ans + 1);
if((mul - ans1) <= (ans2 - mul)){
cout << ans1;
}
else{
cout << ans2;
}
}
int main() {
int a = 3, b = 3, x = 4;
findMultiple(a, b, x);
}输出结果
Nearest multiple: 28
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短