【正经题解】数列
2024-02-21 14:24:32
发布于:浙江
24阅读
0回复
0点赞
分析一下样例
时,数列为: , , , , , , ..
转换成三进制就是: , , , , , , ..
看起来像是二进制,转化成十进制看看
, , , , , , ..
显然,第 项就是 .
程序就把这个过程逆回去,先把 转换成二进制,再把它当成 进制,重新转换为十进制.
#include <iostream>
#include <stack>
#include <cmath>
using namespace std;
long long k, n, ans;
stack<int> S;
int main() {
cin >> k >> n;
while(n) S.push(n & 1), n >>= 1;
while(!S.empty()) ans += S.top() * pow(k, S.size()-1), S.pop();
cout << ans << endl;
return 0;
}
这里空空如也
有帮助,赞一个