先暂个位
不写了越写越乱,joji789的算法很不错.
把相应的变量改成long型,相加后的数可能很大.
下面是我考虑的,你可以参考一下:
在被调函数里可以设置一个static的变量,用以存放累乘的值,后在每次进入函数时就在原来的基础上继续累乘就速度更快了.但是前提(这其中会考虑到要排序)进入函数的数都要比它下一个进入的参数要小
#include
#include
long int jiech(int x)
{int i=1;
long int jie=1;
for(i=2;i<=x;i++)jie*=i;
return(jie);
}
int main()
{int m,n,k;
scanf("%d %d %d",&m,&n,&k);
printf("%ld",jiech(m)+jiech(n)+jiech(k));
system("pause");
return 0;
}
#include
int fun(int n)
{
int sum=1;
for(int i =1;i<=n;i++)
sum*=i;
return sum;
}
void main()
{
int sum ,a,b,c;
scanf("%d%d%d",&a,&b,&c);
sum = fun(a)+fun(b)+fun(c);
printf("%d\n",sum);
}
int js(int n)
{
if(n==1)
return 1;
else
return n*js(n-1);
}
void main()
{
int m=0,n=0,k=0;
cout<<"请输入三个数: ";
cin>>m>>n>>k;
cout<
楼主给分哦:)
如果M,N,K中任一个数超过12或者三个的和超过long的范围的话,请问楼上的几位的方法还行得通吗?