Nettle 2009-02-23 02:53:00
点我顶贴
收藏
删除
比如第 4 个数 即为 d^2 而 4 的 2进制表示为 100
第 6 个 d^2 + d^1 而 (6)10 = (110)2~~~
就这么简单~~
===================================
#include <iostream>
using namespace std;
int main()
{
int D, N, sum = 0, t = 1;
short x;
scanf("%d%d", &D, &N);
while (N)
{
x = N & 1;
N = N >> 1;
if (x) sum += t;
t *= D;
}
printf("%d\n", sum);
return EXIT_SUCCESS;
}
#3 niu@2009-01-31 04:26:00
10146
回复
删除
74这道题发现与2进制有关后就很容易了~~
先将n转为2进制,接下来把它当作k进制算,只不过最后一位是1而不是k~~
如n=100,k=3,100=(1100100)2,看作(1100100)3=729+243+9=981。