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

问题遇到的现象和发生背景

在csdn的公众号遇到这样的一个问题,如图

img

问题相关代码,请勿粘贴截图

我写的代码是


#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>

int main()
{
    int s = 3;
    int n = 0;
    printf("请问对折几次?");
    scanf("%d", &n);
    int num = 0;
    num = 2 * 2 - 1;
    for (int i = 0; i < n-1; i++)
    {
        num = num * 2 - 1;
    }
    printf("%d", num);
    return 0;
}
运行结果及报错内容

而运算结果是1025,微信公众号给出的答案是1024,有点搞不懂是为啥,有没有明白的帮忙解决一下

#include <stdio.h>
int main ()
{
    int wan=1,i;
    for(i=2;i<=10;i++)//求弯的数量 
    {
        wan=wan*2+1; 
    }
    printf("%d",wan+2);//弯+2(2是原始面条的头尾)就是最后数量 
    return 0;
}