在C ++中以2为基数到N / 2的所有基数的N个数字的总和
在这个问题中,给我们一个数字N。我们的任务是创建一个程序,以2为底的N到N / 2的数字N的数字的总和。
因此,我们必须将数字的底数转换为2到N / 2的所有底数,即对于n = 9,底数将为2、3、4。然后在这些底数中找到所有数字的总和。
让我们举个例子来了解这个问题,
输入值
N = 5
输出结果
2
说明
base from 2 to N/2 is 2.52 = 101, sum of digits is 2.
为了解决这个问题,我们以2到N / 2之间的每个数字为基数。然后,为了计算数字总和,我们将N除以基数,即N = N / base,然后将余数加到总和上。然后将找到的每个基数的和值相加以获得结果。
示例
用来说明我们解决方案工作方式的程序 -
#include <iostream>using namespace std;
int findBaseSum(int n, int base, int &sum){
while (n > 0) {
sum += n % base;
n /= base;
}
return sum;
}
void CalcSumOfBaseDigits(int n, int &sum){
for (int base = 2; base <= n / 2; base++)
findBaseSum(n, base, sum);
}
int main(){
int N = 11;
int sum = 0;
CalcSumOfBaseDigits(N, sum);
cout<<"The sum of digits of "<<N<<" written in all bases from 2 to "<<(N/2)<<" is "<<sum;
return 0;
}
输出结果
The sum of digits of 11 written in all bases from 2 to 5 is 14
以上是 在C ++中以2为基数到N / 2的所有基数的N个数字的总和 的全部内容, 来源链接: utcz.com/z/356652.html