题目描述:
给定一个正整数k(3≤k≤15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,例如,当k=3时,这个序列是:
1,3,4,9,10,12,13,…
(该序列实际上就是:30,31,30+31,32,30+32,31+32,30+31+32,…)
请你求出这个序列的第N项的值(用10进制数表示)。
例如,对于k=3,N=100,正确答案应该是981。
答案:
#include <stdio.h>
int fun(int b,int d)
{
int i=1,p=1;
for(;i<=d;i++)
{
p*=b;
}
return p;
}
int main()
{
int i,j,c,n,k,a[1005]={0},count=1;
scanf("%d %d",&k,&n);
a[count++]=1;
a[count++]=k;
a[count++]=k+1;
for(i=2;count<=n;i++)
{
a[count++]=fun(k,i);
c=count-1;
for(j=1;j<c&&count<=n;j++)
{
a[count++]=a[j]+a[c];
}
}
printf("%d\n",a[n]);
return 0;
}