[基礎算法 C5 ] 數(shù)列
題目描述
【問題描述】
給定一個正整數(shù)k(3≤k≤15),把所有k的方冪及所有有限個互不相等的k的方冪之和構(gòu)成一個遞增的序列,例如,當k=3時,這個序列是:
1,3,4,9,10,12,13,…
(該序列實際上就是:30,31,30+31,32,30+32,31+32,30+31+32,…)
請你求出這個序列的第N項的值(用10進制數(shù)表示)。
例如,對于k=3,N=100,正確答案應該是981。
【輸入格式】
? ? ? ? 輸入 只有1行,為2個正整數(shù),用一個空格隔開:k? N(k、N的含義與上述的問題描述一致,且3≤k≤15,10≤N≤1000)。
【輸出格式】
? ?輸出為計算結(jié)果,是一個正整數(shù)(在所有的測試數(shù)據(jù)中,結(jié)果均不超過2*109)。(整數(shù)前不要有空格和其他符號)。
樣例輸入?復制
3 100
樣例輸出?復制
981
程序:
#include <iostream>
using
namespace
std;
int
num[20][1010];
int
main()
{
????
for
(
int
i=3;i<=15;i++)
????
{
????????
int
a=1,up=0,n=0;
????????
num[i][up]=a;
????????
while
(up<=1000)
????????
{
????????????
a*=i;
????????????
n=up;
????????????
num[i][++up]=a;
????????????
for
(
int
k=0;k<=n;k++)
????????????????
num[i][++up]=a+num[i][k];
????????
}
????
}
????
int
n,m;
????
cin>>n>>m;
????
cout<<num[n][m-1]<<endl;
????
return
0;
}
標簽: