这个地方存在问题,不知道这个算法要如何完善,目的是为防止数据过大溢出,将输出限制在10007以内

#include
int main()
{
int sobinc(double s);
double shuru,pt;
scanf("%lf",&shuru);
pt=sobinc(shuru);
printf("%d",pt);
return 0;
}

int sobinc(double s)
{
int result;
if(s<=1.)
{
if(s<0)
result=0;
else
result=1;
}
else
result=sobinc(s-1)%10007+sobinc(s-3.14)%10007;
return (result);
}

你的具体应用场景是什么啊?你的代码用到了递归,根据你写的result的值,要么为0要么为1,在怎么递归返回值也不会大于10007啊。