一、题目
切面条
一根高筋拉面,中间切一刀,可以得到2根面条。
如果先对折1次,中间切一刀,可以得到3根面条。
如果连续对折2次,中间切一刀,可以得到5根面条。
那么,连续对折10次,中间切一刀,会得到多少面条呢?
答案是个整数,请通过浏览器提交答案。不要填写任何多余的内容。
二、分析
对折次数 | 得到面条数 |
0 | 2 |
1 | 3=2+1=2+2^0 |
2 | 5=2+1+2=2+2^0+2^1 |
3 | 9=2+1+2+4=2+2^0+2^1+2^2 |
4 | 2+1+2+4+8=17 |
再找到规律之后,我们要用循环来计算当对折次数为10的时候,能有多少面条数,初始化sum=2,用来存最终的面条数对折次数为1,我们加的是2的0次方,对折次数为2的时候,我们往之前的sum加的是2的次方,所以循环从0~9.i不是对折次数,而是2的i次方,i到9的原因是:对折次数正好比次方数大了个1
代码:
package lan2014;public class B武功秘籍 {public static void main(String[] args) {int sum = 2;for(int i = 0; i <=9; i++) {//i不是对折次数,而是2的i次方,i到9的原因是:对折次数正好比次方数大了个1sum += Math.pow(2,i);}System.out.println(sum);}
}
运行结果:1025