P1062 数列

题目描述

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

1,3,4,9,10,12,13,…1,3,4,9,10,12,13,

(该序列实际上就是: 3^0,3^1,3^0+3^1,3^2,3^0+3^2,3^1+3^2,3^0+3^1+3^2,…30,31,30+31,32,30+32,31+32,30+31+32, )

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

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

输入输出格式

输入格式:

22 个正整数,用一个空格隔开:

k NkN ( kk 、 NN 的含义与上述的问题描述一致,且 3≤k≤15,10≤N≤10003k15,10N1000 )。

输出格式:

11 个正整数。(整数前不要有空格和其他符号)。

输入输出样例

输入样例#1:  复制
  3 100
输出样例#1:  复制
981

说明

NOIP 2006 普及组 第四题

#include<bits/stdc++.h>

using namespace std;

queue<int>q;

int main()
{
    int n , k ;
    cin >> k >> n;
    while(n)
    {
        q.push(n & 1);
        n >>= 1;
    }
    long long sum = 0 ;
    long long  t = 1;
    while(!q.empty())
    {
        int temp = q.front();
        q.pop();
        if(temp == 1)
            sum += t;
        t *= k;
    }
    cout << sum ;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/ant_e_zz/article/details/80833042