原题链接:K-进制数
解题思路:
注意事项:
参考代码:
#include<iostream> using namespace std; int main() { int n,k,a0,a1,i;//n表示位数,k表示进制 cin>>n; cin>>k; a0=1;a1=k-1; for(i=2;i<=n;i++) { int last1=a1; a1=(k-1)*(a1+a0); a0=last1; } cout<<a1; return 0; } /* 这种方法会超时 int a[16]; int count; int judge(int n) { int sign=1; for(int i=1;i<n-1;i++) { if(a[i]==0&&a[i+1]==0) { sign=0; break; } } return sign; } void dfs(int n,int k,int i)//n表示位数,k表示进制,i表示当前位置 { int x=0; if(i==n) { if(judge(n)) count++; return; } if(i==0) x=1; for(x;x<k;x++) { a[i]=x; dfs(n,k,i+1); } return; } int main() { int n,k;//n表示位数,k表示进制 cin>>n; cin>>k; dfs(n,k,0); cout<<count; return 0; } */
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复