// 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);
}