(一)切面条
一根高筋拉面,中间切一刀,可以得到2根面条。
如果先对折1次,中间切一刀,可以得到3根面条。
如果连续对折2次,中间切一刀,可以得到5根面条。 那么,连续对折10次,中间切一刀,会得到多少面条呢?
思路1:(数学思想)
总结规律得出式子 :
将10代进去就得到1025,代码实现如下:
int main()
{
int n;
cin>>n;
int sum=1;
for(int i=0;i<n;i++)
{
sum*=2;
}
cout<<"对折"<<n<<"次可得到的面条数为:"<<sum+1;
return 0;
}
思路2:(编程迭代思想/递归)
下一个为上一个对折的两倍再减去一根面条,因为总是有一根连在一起
总结规律得出式子:
递归函数编程,代码实现如下:
int cut(int n)
{
if(n==0)
{
return 2;
}else{
int sum=0;
for(int i=0;i<n;i++)
{
sum*=2;
}
return 2*cut(n-1)-1;
}
}
int main()
{
int n;
cin>>n;
cout<<"对折"<<n<<"次可得到的面条数为:"<< cut(n);
return 0;
}