这适用于许多情况,其中大多数变量都是整数,除非我想找到所有 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;
}