内江 网站建设,微信网站怎样做,品牌网站制作报价表,excel做网站数据库题目描述
给定一个正整数k(3≤k≤15)k(3≤k≤15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列#xff0c;例如#xff0c;当k3k3时#xff0c;这个序列是#xff1a;
1,3,4,9,10,12,13,…1,3,4,9,10,12,13,…
#xff08;该序列实际上就是…题目描述
给定一个正整数k(3≤k≤15)k(3≤k≤15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列例如当k3k3时这个序列是
1,3,4,9,10,12,13,…1,3,4,9,10,12,13,…
该序列实际上就是3^0,3^1,3^03^1,3^2,3^03^2,3^13^2,3^03^13^2,…30,31,3031,32,3032,3132,303132,…
请你求出这个序列的第NN项的值用1010进制数表示。
例如对于k3k3N100N100正确答案应该是981981。
输入格式
22个正整数用一个空格隔开
k NkN kk、NN的含义与上述的问题描述一致且3≤k≤15,10≤N≤10003≤k≤15,10≤N≤1000。
输出格式
11个正整数。整数前不要有空格和其他符号。
输入数据 1
3 100Copy
输出数据 1
981Copy
来源
NOIP 2006 普及组 第四题 代码:
#include iostream
#include cmath
using namespace std;/*** 判断 x 是不是 2 的 kk为正整数次方*/
bool judgePow2(int x)
{int y log(x) / log(2);int result pow(2,y);return result x;
}/*** 递归*/
int add(int n, int k)
{if(n1) return 1;if(n2) return k;if(judgePow2(n) true) {int p log(n)/log(2);int result pow(k,p);return result;}int temp log(n)/log(2);int base pow(k,temp);int temp2 pow(2,temp);return base add(n-temp2,k);
}int main()
{int m,n;cinm;cinn;coutadd(n,m)endl;return 0;
}