【发布时间】:2013-10-02 12:48:19
【问题描述】:
我遇到了运行时错误,请帮助解决问题。会不会是count的全局声明的二重奏??
#include <stdio.h>
int count=0;
long long fact(long long num)
{
if(num==0)
return 1;
else
return (num*fact(num-1));
}
long long fzro(int abc)
{
if(abc%10 == 0)
{
count++;
fzro(abc/10);
}
return count;
}
int main(void)
{
int lst,i;
unsigned long long ar[100000];
scanf("%lld",&lst);
for(i=0;i<lst;i++)
{
scanf("%lld", &ar[i]);
printf("%lld \n", fzro(fact(ar[i])));
}
}
【问题讨论】:
-
您假设您有一个非常大的堆栈,可以容纳 100000 个多头,并在 fact() 函数中递归 1000000000 次。这是一个错误的假设。希望您读取的输入也不超过 100000 个数字。
标签: c