转载请注明出处: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;
}