【蓝桥杯JavaB组真题详解】切面条(2014)

题目描述

切面条
一根高筋拉面,中间切一刀,可以得到2根面条。
如果先对折1次,中间切一刀,可以得到3根面条。
如果连续对折2次,中间切一刀,可以得到5根面条。
那么,连续对折10次,中间切一刀,会得到多少面条呢?

答案是个整数,请通过浏览器提交答案。不要填写任何多余的内容。

解题思路

我们很容易可以得到一个数列a(0)=2,a(1)=3,a(2)=5,a(3)=9,a(4)=17……
【蓝桥杯JavaB组真题详解】切面条(2014)_第1张图片
第一种方法
我们可以认为这是一个类等比数列,可以认为a(n)=2n+1,进而得到a(10)=210+1=1025

第二种方法
我们也可以发现a(1)=2a(0)-1,a(2)=2a(1)-1……
总结得到a(n)=2a(n-1)-1

参考代码

public class Test {
     
	 
	public static void main(String[] args) {
     
		int count = 2;
		int n=10;
		for (int i = 1; i < n+1; i++) {
     
			count=2*count-1;
		}
		System.out.println(count);
	}
}

答案:1025

你可能感兴趣的:(蓝桥杯JavaB组真题详解,java,数据结构,算法)