三角函数算法的优化,请教
//最开始用普通方法做,到了100000以后运行速度慢。然后我想用递归做,看看会不会快一点。但是到了10000以后就出现错误了。为什么?#include<stdio.h>
long s = 0;
int zz(long i, long j, long a)
{
if (j == 0)
return 0;
if (i + j>a)
if (a*a == j*j + i*i)
s++;
zz(i, --j, a);
}
int gg(long a)
{
long i, j;
for (i = a; i > a / 2; i--)
zz(i, a, a);
return s - 1;
}
int main()
{
long a;
scanf("%ld", &a);
printf("%d", gg(a));
getchar();
getchar();
return 0;
}