首页 > 代码库 > 蓝桥杯-切面条
蓝桥杯-切面条
烟大OJ-2506
Description
一根高筋拉面,中间切一刀,可以得到2根面条。
如果先对折1次,中间切一刀,可以得到3根面条。
如果连续对折2次,中间切一刀,可以得到5根面条。
那么,连续对折10次,中间切一刀,会得到多少面条呢?
Input
包含多组数据,首先输入T,表示有T组数据.每个数据一行,是对折的次数。
Output
每行一组数据,输出得到的面条数。
Sample Input
3012
Sample Output
235
code
循环
1 #include <iostream> 2 using namespace std; 3 int main() 4 { 5 int i,j,t,n,two=1,sum=2; 6 cin>>t; 7 for(i=1;i<=t;i++) 8 { 9 cin>>n;10 sum=2,two=1;11 for(j=0;j<n;j++)12 {13 sum+=two;14 two*=2;15 }16 cout<<sum<<endl;17 }18 return 0;19 }
递归
#include <iostream>using namespace std;int noodle(int n);int main(){ int i; int n,m; cin>>n; for(i=1;i<=n;i++) { cin>>m; cout<<noodle(m)<<endl; } return 0;}int noodle(int n){ int i,two=1; if(n==0) return 2; else { for(i=1;i<n;i++) two*=2; return noodle(n-1)+two; }}
递归2
1 #include <iostream> 2 using namespace std; 3 int f(int n) 4 { 5 //基本递归 6 if(n == 0) 7 { 8 return 2; 9 } 10 else 11 { 12 return 2 * f(n - 1) - 1; 13 }14 }15 int main(void) 16 { 17 cout << f(10) << endl; 18 return 0;19 }
递归3
#include <iostream>using namespace std;int f2(int n, int r) { //尾递归 if(n == 0) { return r; } else { return f2(n - 1, 2 * r - 1); }}int main(void) { cout << f2(10, 2) << endl; return 0;}
1.递归重要的是总结出递归公式!
2.不要在递归函数中定义变量,真的很蹩脚。
蓝桥杯-切面条
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。