① 【在線等】c語言程序:對n的階乘求和,n=1到10
分析下程序,階乘可以用遞歸做,也可以用循環做,這里就放上這兩種代碼了。
一.遞歸:
#include <stdio.h>
int f(int t)
{
if (t==1)
return 1;
else
return t*f(t-1);
}
int main()
{
printf("%d ",f(10));
return 0;
}
程序分析:定義一個f函數,利用遞歸的特性,進行運算
10*f(9) = 10*9*f(8) …… 直到到1時返回1
得出結果:
② c語言求1到n的階乘的和
最基礎的思路,是逐個求階乘,並累加。不過由於階乘是從1乘到n,所以每個數都單獨求一次階乘,會有很多重復運算,影響效率。
所以更快捷的方式是,在上一個數的階乘基礎上,直接乘上本身,得到當前數的階乘。
以此為主導,代碼如下:
#include <stdio.h>
int main()
{
int n, i, n1 = 1,s=0;
scanf("%d",&n);//輸入n值。
for(i=1; i <= n; i ++)
{
n1*=i;//計算i的階乘。
s+=n1;//累加。
}
printf("%d\n", s);//輸出結果。
}
③ c語言求1到n階乘的和用遞歸
1、打開vc6.0,新建一個vc項目,添加頭文件,添加一個空的main函數,這里先定義一個用來求階乘的函數,函數的參數為i,階乘就是不斷的和前面的一個數相乘,這里就是不斷和fact函數相乘,之後編寫主函數的內容:
④ java編程:寫出求n的階乘的方法,並算出1到7的階乘的和
Java編程:寫出求n的階乘的方法,並算出1到7的階乘的和方法:
先編寫求階乘的方法,再通過for循環計算1到7的階乘的和。
具體實現:
publicclassTest{
publicstaticvoidmain(String[]args){
intsum=0;//保存階乘的和
for(inti=1;i<=7;i++)
sum+=factorial(i);
System.out.println(sum);
}
//求階乘方法,傳入一個整數,返回這個整數的階乘
publicstaticintfactorial(intnum){
intresult=1;
for(inti=1;i<=num;i++){
result*=i;
}
returnresult;
}
}
⑤ 計算N的階乘的和
1.你定義的long類型變數,printf裡面應該使用%ld輸出,使用%d輸出的結果可能不準確。
2.只需要單層循環即可,一次循環可以一次計算a=i!,sum=∑i!
正確的程序:
/*
計算N的階乘的和
*/
#include<stdio.h>
#define N 10
main ()
{
long i,j,a=1,sum=0;
for(i=1;i<=N;i++)
{
a*=i;
sum+=a;
}
printf("sum=%ld\n",sum);
}
運行的結果為4037913