题目:
一根皮筋, 中间切一刀, 可以得到2根皮筋。
如果先对折1次, 中间切一刀, 可以得到3根皮筋。
如果连续对折2次, 中间切一刀, 可以得到5根皮筋。
那么, 连续对折10次, 中间切一刀, 会得到多少皮筋呢?
分析
刚看到这个题目我感觉题目错了,对折一次切一刀得到的难道不是4根吗?
当我智障般发问以后突然意识到,题目没错,是我智障了。
皮筋对折一次以后有一端是连着的,所以切之后少了一根。
皮筋对折两次时,有三端是连着的,所以切之后少了三根。
开战
于是:
折数=上一次折数+上一次层数
层数=上一次层数2
条数=层数2-折数
代码:
int main()
{
// 对折次数
int n=10, cen = 1, zhe = 0;
for(int i=0; i<n; i++)
{
zhe += cen;
cen *= 2;
}
printf("%d", cen*2-zhe);
}
结果: