讨论 / 位运算~~
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;

}

#1 Nettle@2008-09-20 02:13:00
回复 删除
MS 只是跟 2 进制有关~~~题目错了~~~- -###
#2 LiWang112358@2009-01-31 04:12:00
回复 删除
ding!!!!!!!!!
#3 niu@2009-01-31 04:26:00
回复 删除
74这道题发现与2进制有关后就很容易了~~

先将n转为2进制,接下来把它当作k进制算,只不过最后一位是1而不是k~~

如n=100,k=3,100=(1100100)2,看作(1100100)3=729+243+9=981。

#4 xxwzy@2009-02-23 02:53:00
回复 删除
顶小niu
查看更多回复
提交回复