AcWing 428. 数列
原题链接
简单
作者:
LingYunX
,
2021-02-06 20:24:37
,
所有人可见
,
阅读 365
这道题的关键还是在于要找到 第N个结果对应是由k的那几个幂次方构成
4:100;5:101;6:110 .。。。。
而对应的结果就是N转换成2进制之后结果,存在1的位置的k的幂次方的和
比如N = 4,对应二进制100,res = k的2次方
比如N = 6,对应二进制110,res = k的2次方+k的1次方。
类推
#include <iostream>
using namespace std;
int k, n;
// 计算k的i次方, 暴力求解
int power(int k, int i){
int res = 1;
while (i--){
res *= k;
}
return res;
}
int main(){
cin >> k >> n;
int res = 0;
for (int i = 0; i < 10; i++){
if (n >> i & 1)
res += power(k, i);
}
cout << res << endl;
return 0;
}