1344. 数列

TAG 进制转换

 

把N转换成二进制,然后当作K进制数转换为十进制就可以了。

#include <stdio.h> int bin[10]; int pow[10]; int len; int k,N; void tobinary(int n) { len=0; for (int i=0; i<10 && n>0; ++i) { bin[i]=n%2; n/=2; len=i; } } int cal() { int ret=0; pow[0]=1; for (int i=1; i<=len; ++i) { pow[i]=pow[i-1]*k; } for (int i=0; i<=len; ++i) { if ( bin[i] ) { ret+=pow[i]; } } return ret; } int main(int argc, char *argv[]) { while ( scanf("%d%d", &k, &N)!=EOF ) { tobinary(N); printf("%d/n", cal() ); } return 0; }

你可能感兴趣的:(1344. 数列)