转载请注明出处:http://blog.csdn.net/a1dark
分析:根据题目推出公式、分三种情况讨论、可以用递归写、也可以直接递推、
递归代码:
#include<stdio.h> int dfs(int m,int n){ if(n==0)return dfs(m-1,1); if(m==1)return n+2; if(m==2)return 2*n+3; if(m==3)return 2*dfs(3,n-1)+3; } int main(){ int m,n; while(scanf("%d%d",&m,&n)!=EOF){ if(m==1)printf("%d\n",n+2); else if(m==2)printf("%d\n",2*n+3); else printf("%d\n",dfs(3,n)); } return 0; }
递推代码:
#include<stdio.h> int main(){ int m,n; while(scanf("%d%d",&m,&n)!=EOF){ if(m==1)printf("%d\n",n+2); else if(m==2)printf("%d\n",2*n+3); else{ int s=5; for(int i=1;i<=n;i++) s=s*2+3; printf("%d\n",s); } } return 0; }