您的位置:首页 > 其它

切面条---第五届蓝桥杯

2014-09-28 12:08 337 查看
一根高筋拉面,中间切一刀,可以得到2根面条。

如果先对折1次,中间切一刀,可以得到3根面条。

如果连续对折2次,中间切一刀,可以得到5根面条。

那么,连续对折10次,中间切一刀,会得到多少面条呢?

分析:



可以将此分为A和B两个部分;A部分代表有原始两头的那一方;

可以推断出,A部分每次的数量=原始两头+B部分折叠过来的数量

总数量=A部分数量+B部分数量;

通过分析可以知道B部分数量每次翻倍,而A部分中B部分的数量是依次累加的;

代码如下:

public static void main(String[] args) {
// TODO Auto-generated method stub
long start = System.currentTimeMillis();
int a=2,b=1;
int temp=0;//每次从b方向折叠过来的数量;
for(int i=2;i<=10;i++)
{
temp=temp+b;
b=b*2;//b的数量每次翻倍
}
print(2+temp+b);
long end = System.currentTimeMillis();
print("此程序运行,花费的时间是" + ((end - start) / 1000.0) + "秒.");
}

public static void print(Object o) {
System.out.println(o.toString());
}


答案:1025
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: