解题思路:利用进制转换:将N转化为二进制,例如当k=3,N=4时,N2=010,发现数学规律,即数列第四项为30*0+31*0+32*1,以此类推。
注意事项:注意计算幂函数谨慎使用pow()函数,因为精度问题,我在这里就踩坑了。
参考代码:
/*利用进制转换:将n转化为二进制,再将二进制转化为k进制*/ #include <iostream> #include <cmath> using namespace std; int main (void) { int k,n; cin>>k>>n; int i=0; int n2=0; int a=1; int j=0; while(n!=0) { //转换成二进制 while(j<i) { a*=10; j++; } n2+=n%2*a; i++; n/=2; } int count=0; int g=1; for(int j=0; j<i; j++) {//运用数学规律 count+=g*(n2%10); g*=k; n2/=10; } cout<<count; return 0; }
0.0分
11 人评分
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:574 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:661 |
WU-整数平均值 (C++代码)浏览:1237 |
1013题解浏览:552 |
1014题解浏览:484 |
核桃的数量 (C语言代码)浏览:870 |
C语言程序设计教程(第三版)课后习题9.3 (C语言代码)浏览:593 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:553 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:440 |
拯救雅典娜浏览:1239 |