// 1 3 4 9 10 12
// 3^0 3^1 3^0+3^1 3^2 3^0+3^2 3^1+3^2
// 1 2 3 4 5 6
// 1b 10b 11b 100b 101b 110b
// 把上面的二进制数为 1 的地方替换成 3 的相应位次方(从0开始)
// 并求和则得到相应的结果
#include <stdio.h>
int main(void) {
int k, N, a, b, c = 0, sum = 0, i, n;
printf("请输入基数和第N项(中间用空格分开):");
scanf("%d %d", &k, &N);
n = N;
while(N) {
a = N % 2;
N /= 2;
// printf("%d\t%d\n", a, N);
if(a) {
b = 1;
for(i = 0; i < c; i++) {
b *= k;
}
// printf("%d\n", b);
sum += b;
}
c++;
}
printf("\n第%d项的数为%d", n, sum);
}
1 3 4 9 10 12这个问题还真的……
猜你喜欢
转载自blog.csdn.net/weixin_39410618/article/details/101639361
今日推荐
周排行