gpt4 book ai didi

c - 该程序工作正常高达 9 位数字和失败在 10 位

转载 作者:太空宇宙 更新时间:2023-11-04 06:00:54 25 4
gpt4 key购买 nike

这在很多情况下都有效,其中大多数变量都是整数,除非我想找到所有 10 位数字加起来,比如 45,然后它只给我一个零输出。然后,我将所有变量更改为 longs 以查看是否会有所不同,但事实并非如此。关于我应该做什么或目前做错了什么有什么想法吗?

感谢任何帮助。

我的程序如下:

long add_digits(long);
int main()
{
long digit, i, j, limit, l, n, sum=0, rem, result, counter=1;
printf("\nInput digits: ");
scanf("%d", &j);
printf("\nInput number: ");
scanf("%d", &i);
limit=pow(10,j);
for(n=1; n<limit; n++)
{
result = add_digits(n);
if(result==i)
counter++;

}
printf("\n%d\n", counter-1);
return 0;
}
long add_digits(long n)
{
static long sum = 0;
if (n == 0) {
return 0;
}
sum = n%10 + add_digits(n/10);
return sum;
}

最佳答案

除了粗略地检查一下您的代码外,这一定是由于达到了 intlong 的限制,这在您的平台上可能是 32 位。 (32 位数字的最大长度为 10 位数字)。

为什么不使用自 C99 以来始终为 64 位且标准的 int64_tpow 也可能给您带来问题;但你可以构建一个快速而肮脏的乘以 10 几次来消除这种可能性。

关于c - 该程序工作正常高达 9 位数字和失败在 10 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19522640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com