十进制转二进制,所得数字**当作**k进制转成十进制
#include <bits/stdc++.h>
using namespace std;
int main()
{
int k;
int n;
cin>>k>>n;
int a[1000] = {0};
int st = 1;
while (n){
a[st] = n % 2;
n = n / 2;
st++;
}
long long sum = 0;
for (int i = st;i >= 1;i--){
long long temp = 1;
for (int j = i-1;j > 0;j--){
temp = temp*k;
}
sum = sum + a[i]*temp;
}
cout <<sum;
return 0;
}
[NOIP2006 普及组] 数列
题目描述
给定一个正整数 k k k( 3 ≤ k ≤ 15 3\leq k\leq 15 3≤k≤15),把所有 k k k 的方幂及所有有限个互不相等的 k k k 的方幂之和构成一个递增的序列,例如,当 k = 3 k = 3 k=3 时,这个序列是:
1 , 3 , 4 , 9 , 10 , 12 , 13 , … 1, 3, 4, 9, 10, 12, 13, \ldots 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 , … 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,…)
请你求出这个序列的第 N N N 项的值,用 10 10 10 进制数表示。
例如,对于 k = 3 k = 3 k=3, N = 100 N = 100 N=100,正确答案应该是 981 981 981。
输入格式
两个由空格隔开的正整数 k , N k, N k,N( 3 ≤ k ≤ 15 3\leq k\leq 15 3≤k≤15, 10 ≤ N ≤ 1000 10\leq N\leq 1000 10≤N≤1000)。
输出格式
一个正整数。整数前不要有空格和其他符号。
样例 #1
样例输入 #1
3 100
样例输出 #1
981
提示
NOIP 2006 普及组 第四题