1767 - 数列

给定一个正整数k(3k15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,例如,当k=3时,这个序列是:

1349101213,…

(该序列实际上就是:303130+313230+3231+3230+31+32,…)

请你求出这个序列的第N项的值(用10进制数表示)。

例如,对于k=3N=100,正确答案应该是981


题目输入

输入文件sequence.in 只有1行,为2个正整数,用一个空格隔开:

k N

kN的含义与上述的问题描述一致,且3k1510N1000)。


题目输出

输出文件sequence.out 为计算结果,是一个正整数(在所有的测试数据中,结果均不超过2.1*109)。(整数前不要有空格和其他符号)。


输入/输出样例

题目输入

3 100

题目输出

981

C++解答

#include<iostream>   
using namespace std;   
int i,j,ans;   
int n,k;   
int main()   
{   
    cin>>k>>n;   
    int p=1;   
    while (n>0)   
    {   
        if (n&1)   
        {   
            ans+=p;   
        }   
        p*=k;   
        n>>=1;   
    }   
    cout<<ans;   
    return 0;   
}   

时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题