main()
{
long a,b,i,sum=1;
for(i=2;i<=10;i++)
{
a=1;
b=i;
if(b>1)
{
a*=b*(b-1);
b=b-2;
}
sum+=b;
}
printf("%d",sum);
}
----------------解决方案--------------------------------------------------------
#include<math>
main()
{
long a,b,i,sum=1;
for(i=2;i<=10;i++)
{
a=1;
b=i;
if(b>1) /*多此一举,b=i,肯定大于1*/
{
a*=b*(b-1);
b=b-2;
}
sum+=b;
}
printf("%d",sum);
}
我没看懂你的意思..能说一下你的思路吗?
----------------解决方案--------------------------------------------------------
#include<math.h>
# include <stdio.h>
main()
{
long i,sum=1;
for(i=1;i<=10;i++)
{
sum*=i;
}
printf("%d",sum);
}
----------------解决方案--------------------------------------------------------
#include<math.h>
main()
{
long a=1,b,i;
for(i=2;i<=10;i++)
{ b=i;
if(b>1)
a*=b*(b-1);
/* b=b-2; */
}
printf("%ld",a);
getch();
}
我帮楼主改了一下,8以下的都行,但是10的阶乘就溢出了
----------------解决方案--------------------------------------------------------
unsigned long 吧~~ 再不行,用个数组放
----------------解决方案--------------------------------------------------------
不够精炼
----------------解决方案--------------------------------------------------------
不够精炼
----------------解决方案--------------------------------------------------------
我是初学者
----------------解决方案--------------------------------------------------------
?include<stdio.h>
?include<conio.h>
洪nt main(void)
蝴
? long int i,j,sum;
? for(i=1;i<=10;i++)
? {
? sum=1;
? for(j=1;j<=i;j++)
? sum=sum*j;
? printf("sum=%ld\n",sum);
? }
? getch();
? return 0;
糊
左侧是多于的
----------------解决方案--------------------------------------------------------
int fac(int n)
{
//求 n!
int res;
if(n<0) printf("Error!");
else if(n==0||n==1) res=1;
else res=n*fac(n-1);
return res;
}
main()
{
int n,i,result;
printf("n=");
scanf("%d",&n);
result=fac(n);
printf("Result=%d\n",result);
}
----------------解决方案--------------------------------------------------------