分析下程序,階乘可以用遞歸做,也可以用循環(huán)做,這里就放上這兩種代碼了。
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序定制開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(liá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);//輸出結(jié)果。
在main函數(shù)定義int類型變量sum,然后調(diào)用fact()將返回值賦予sum,最后使用printf打印sum的值:最后編寫程序好后,來運行程序觀察結(jié)果,這里可以看到打印出了6的階乘。
1、第三步、就是把sum初始化,為千萬不要為0,保證后面的結(jié)果不出問題。第四步、就是輸入一個n,用來求n的階乘,別忘了在前面提示一下。第五步、就是利用for循環(huán)來求階乘。
2、for (j = 1; j = i; j++) { factorial *= j;} sum += factorial;} printf(1! + 2! + ... + 8! = %d\n, sum);return 0;} 在這個程序中,我們使用了兩個嵌套的for循環(huán)來計算1到8的階乘和。
3、所以更快捷的方式是,在上一個數(shù)的階乘基礎(chǔ)上,直接乘上本身,得到當(dāng)前數(shù)的階乘。以此為主導(dǎo),代碼如下:include stdio.h int main(){ int n, i, n1 = 1,s=0;scanf(%d,&n);//輸入n值。
在main函數(shù)定義int類型變量sum,然后調(diào)用fact()將返回值賦予sum,最后使用printf打印sum的值:最后編寫程序好后,來運行程序觀察結(jié)果,這里可以看到打印出了6的階乘。
最基礎(chǔ)的思路,是逐個求階乘,并累加。不過由于階乘是從1乘到n,所以每個數(shù)都單獨求一次階乘,會有很多重復(fù)運算,影響效率。所以更快捷的方式是,在上一個數(shù)的階乘基礎(chǔ)上,直接乘上本身,得到當(dāng)前數(shù)的階乘。
你這道題輸出先看看是什么,你輸出就不是求階乘的。include main(){ int a=0,b=1,c,d;while(b=10){ c=b;for(d=1;c0;c--)d=c*d;a=a+d;//根本不知道你這個a有什么用,建議直接刪去。