c語言從鍵盤上輸入整數n求n要求n過程用函

2021-05-22 18:57:28 字數 5614 閱讀 6595

1樓:水撒了一地

#include

int f(int x);

void main()

int f(int x)

return sum;}

2樓:匿名使用者

#include

int fun(int n_);

void main()

int fun(int n_)

return res;}

用c語言編寫程式從鍵盤輸入一個正整數數n,輸出n!

3樓:匿名使用者

程式設計實現計算n!,也就是n*(n-1)*(n-2)*....*1,可以通過遞迴函式來實現,具體實現方法:

#include

int func(int n)

void main()

在以上程式**中,func()為遞迴函式,主函式main()中接收鍵盤輸入整數值後,呼叫func()遞迴函式,首層m=n*(n-1)!,繼續遞迴呼叫,m=n*(n-1)(n-2)!,這樣逐層遞迴,直到計算出n!。

程式輸出結果如下:

4樓:跪著作揖

#include //定義標頭檔案

int main(  )                   //宣告主函式

輸出j

return 0;                        //返回主函式值

}擴充套件資料

其他方法得到n的階乘:

#include

int prime(int x);

void main(  )

int prime(int x)

else

return s;

5樓:匿名使用者

源程式如下:

#include //定義標頭檔案

int main()//宣告主函式

printf("%d!=%d\n",n,jc);//輸出jcreturn 0;//返回主容函式值

} vc++測試如下:

6樓:匿名使用者

晚上好樓

來主,我自已經編譯通過請看

圖 謝謝採納!

#include

int cacu(int n)

void main()圖:

7樓:匿名使用者

#include

int main()

printf("%d的階乘 = %d\n", input, result);}

8樓:德勝介休

考慮資料

溢位#include

void cheng(int a,int n)}}void jiecheng(int a,int n)}void main()

a[0]=1;

scanf("%d",&n);

jiecheng(a,n);

for(i=0;i<1000;i++)

for(j=s;j>=0;j--)

printf("%d",a[j]);

}執行效果:

輸入回:34

輸出答:295232799039604140847618609643520000000

從鍵盤輸入一個正整數n,計算 n! 的值.要求定義和呼叫函式fact(n),計算n!,函式形參n的型別是int,

9樓:匿名使用者

#include

double fact(int n);

int main(void)

double fact(int n)

10樓:匿名使用者

#include

int main(void)

double fact(int n)

return m;}

11樓:匿名使用者

factorial = fact(n);

double fact(int n)

return ret;}

12樓:匿名使用者

double fact(int n)

13樓:技術螞蟻

double fact(int n)

}else

ret=1;

return ((double)ret);}

c語言 程式設計實現求n!要求用定義求階乘的函式

14樓:飛喵某

1、開啟vs2017軟體,新建c語言的工程,首先開頭引入標頭檔案,然後呼叫先呼叫一下求階乘的函式和空的主函式,最下方定義prime函式用來求階乘:

2、主函式中用scanf函式接受使用者輸入的的數字,接著將輸入的數傳入處理階乘的函式中完成計算,最後輸出列印結果。prime函式有一個引數,首先判斷是否為正數,然後用prime函式自身乘以引數s,最後返回值即可完成:

3、將程式編譯執行,彈出視窗輸入任意的數,計算階乘;這裡輸入7,得到結果是5040。以上就是c語言求階乘的方法:

15樓:文化廚子

#include

long fac(unsigned n)

else

}int main()

注意:0的階乘是1,不是0,因為階乘表示的是全排列,是從n箇中取出n個的所有的取法總數。所以當n==0或者n==1時返回1。

16樓:匿名使用者

本人小白,多多指教

#pragma warning(disable:4996) //vs07防報錯

#include

#include

int factorial(int n)

return resulta;

}int sum(int n)

return resultb;

}int main()

還可以寫成:

#pragma warning(disable:4996)

#include

#include

int sum(int n)

return resultb;

}int main()

寫了兩個自定義函式: factorial()用來計算階乘,sum()用來計算累加值。

factorial()

第一部分:

n!=1x2x3...xn。設resulta=1x2x3....xn。用i表示第幾次計算。

數學計算的詳細步驟:

當i=1時, 1x1=1 第1次計算

當i=2時, 1x2=2 第2次計算

當i=3時, 2x3=6 第3次計算

當i=4時, 6x4=24 第4次計算

當i=n-1時 ax(n-1)=b 第n-1次計算

當i=n時, bxn=c 第n次計算

第二部分:

在c語言中乘法計算例如:int a=1;a=a*2意思是將a的原來的值(舊值)1x2將結果(新值)賦值給a,

a的值變為2.再進行a=a*3意思就是將a原來的值2x3將結果(新值)再次賦值給a,a的值變為6.

上面可以看出:(resulta簡寫為a)

i=1時,(a的舊值)1xi=(a的新值)1 。第1輪結束,a的值從舊值1變成了新值1.

(第一輪中a的新值1相對在第二輪中,看做是a的舊值,依次類推)

i=2時,(a的舊值)1xi=(a的新值)2。 第2輪結束,a的值從舊值1變成了新值2.

i=3時,(a的舊值)2xi=(a的新值)6。 第3輪結束,a的值從舊值2變成了新值6.

i=4時,(a的舊值)6xi=(a的新值)24。第4輪結束,a的值從舊值6變成了新值24.

i=n時,(a的舊值)bxi= (a的新值)b。 第n輪結束,a的值從舊值$變成了新值$(這個新值就是最終值).

第三部分:上面可以看出:

計算a的最終值:進行了n輪,迴圈計算:a的舊值xi=a的新值。

將a的舊值xi=a的新值,寫成**的形式:resulta=resulta*i;即resulta*=a;

從第二部分還能看出:i的初值是i=1;i的範圍是i<=n;i的變化是每次自身+1即i++;迴圈計算->for語句。

resulta初值是1.

int i,resulta=1;

for(i=1;i<=n;i++)

sum()

第一部分:

從1!+2!+3!....+n!可以看出一共有n個階乘。設resultb=1!+2!+3!....+n!(resultb簡寫b)

當n=1,只有1!,0+1!=1 只有1次計算 。當n=2時有1!,2!,先計算0+1!=1再1+2!=3,有兩次計算。

當n=3,有1!,2!,3!。先算0+1!=1再1+2!=3再3+3!=9,有3次計算,依次類推

當n=n,有1!,2!.....n!。會有n次計算。用i表示第幾次計算。

換種寫法:

當i=1時,第一次計算 0+1!值=0+1=1

當i=2時,第二次計算 1+2!值=1+2=3

當i=3時,第三次計算 3+3!值=3+6=9

當i=4時,第四次計算 9+4!值=9+24=33

當i=n-1時第n-1次計算 e+(n-1)!值=a

當i=n時,第n 次計算 a+n!值=a+b=resultb

根據c中加法的意思:

i=1, b舊+ factorial(1)=b新 呼叫factorial()

i=2, b舊+ factorial(2)=b新

i=n, b舊+ factorial(i)=b新

第二部分:

寫成**:resultb=resultb+ factorial(i),

1的初值i=1;i的範圍i<=n;i每次自身加一i++;迴圈計算->for語句。

int i,resultb=0;

for(i=1;i<=n;i++){

resultb+= factorial(i)

17樓:匿名使用者

計算階乘的c#**:

for (;;)

console.writeline("的階乘值為", num, jc);

console.writeline("你是否還需要使用此階乘計算器,1-是,2-否");

int numb = int.parse(console.readline());

if (numb == 1)

if (numb == 2)

}console.readkey();

18樓:匿名使用者

long fact(long n)

}void main()

19樓:童末

#include

#include

using namespace std;

int main()cout<

return 0;}

c語言如何輸入正整數N,再輸入N個整數,按從小到大的順序

include int main for i 0 iprintf d a i printf n return 0 c語言 輸入一個正整數n,再輸入n個整數,將它們排序後由小到大輸出 a num 陣列不允許元素為變數。int i,j,num int change,t printf enter numb...

c語言 輸入正整數n,輸出n的所有因子

1 定義整型變數,用於程式的運算。2 輸入兩個大於2的正整數,儲存在變數n和m中。3 獲取臨時變數t的值為m,設定i的初值為2。5 用i對整數m求餘,儲存在變數r中。6 判斷i是否m的質因子,如果是則繼續判斷是否n的質因子,如果不是n的質因子,則退出迴圈。7 如果i不是質因子,則自加1,繼續判斷。8...

c語言題從鍵盤上輸入任意整數,然後輸出它的絕對值怎

方法一 用數學函式 include include void main 方法二 判斷 include void main problem description 求實數的絕對值。input 輸入資料有多組,每組佔一行,每行包含一個實數。輸入檔案直到eof為止!output 對於每組輸入資料,輸出它的...