解题思路:利用进制转换:将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分
12 人评分
C语言程序设计教程(第三版)课后习题11.11 (C语言代码)浏览:804 |
矩阵转置 (C语言代码)浏览:1565 |
C语言程序设计教程(第三版)课后习题6.3 (Java代码)浏览:695 |
C语言程序设计教程(第三版)课后习题7.4 (Java代码)浏览:873 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:703 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:580 |
九宫重排 (C++代码)浏览:1410 |
【绝对值排序】 (C++代码)浏览:720 |
简单的a+b (C语言代码)浏览:600 |
2006年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:674 |