[NOIP2006]数列

  • 要把每项的幂次化为二进制表示来计算
#include <iostream>
#include <cmath>

using namespace std;

int main()
{
    int k, n;
    cin >> k >> n;
    long long sum = 0;
    int t = 0;
    while(n)
    {
        if(n & 1)
        {
            sum += pow(k, t);
        }
        t ++;
        n >>= 1;
    }
    cout << sum << endl;
    return 0;
}