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

一根高筋拉面,中间切一刀,可以得到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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值