91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

c語言如何計算n的階乘

發布時間:2023-01-04 16:35:34 來源:億速云 閱讀:276 作者:iii 欄目:編程語言

本篇內容主要講解“c語言如何計算n的階乘”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“c語言如何計算n的階乘”吧!

c語言計算n的階乘的方法:1、通過for循環計算階乘,代碼如“for (i = 1; i <= n; i++){fact *= i;}”;2、通過while循環計算階乘,代碼如“while (i <= fact="" int="" res="n;if" n=""> 1)res...”。

一、問題

Problem Description

給定一個整數n,求它的階乘,0≤n≤12

Input

輸入一個數n

Output

輸出一個數,表示n的階乘

Sample Input

5

Sample Output

120

二、分析

既然是求階乘的,那突破點就很明顯,

突破點就在階乘

階乘的概念及背景

1??概念:

一個正整數的階乘(factorial)是所有小于及等于該數的正整數的積,并且0的階乘為1。自然數n的階乘寫作n!。

2??背景:

1808年,基斯頓·卡曼(Christian Kramp,1760~1826)引進這個表示法。

3??階乘的計算方法:

任何大于等于1 的自然數n 階乘表示方法:

n!=1×2×3×…×(n-1)×n 或 n!=n×(n-1)!

注意:0的階乘為1,即 0!=1。
1! = 1
2! = 2 * 1 = 2
3! = 3 * 2 * 1 = 6

n! = n * (n-1) *… * 2 * 1

在了解這些之后,可以開始先嘗試用代碼進行實現一下,然后再看下面代碼做一次檢查。

三、求解

關于C語言實現n的階乘,目前入門階段,我們主要有以下兩種寫法:

第一種:循環

①for循環

#include<stdio.h>int main(){
int n;
scanf("%d", &n);
int fact = 1;
int i;
for (i = 1; i <= n; i++)
{
fact *= i;
}
printf("%d\n", fact);
return 0;}

測試樣例:5

1 * 2 * 3 * 4 * 5 = 120

5120--------------------------------Process exited after 1.475 seconds with return value 0請按任意鍵繼續. . .

②while循環

#include<stdio.h>int main(){
int n;
scanf("%d", &n);
int fact = 1;
int i = 1;
while (i <= n)
{
fact *= i;
i++;
}
printf("%d\n", fact);
return 0;}

測試樣例:6

1 * 2 * 3 * 4 * 5 * 6 = 720

6720--------------------------------Process exited after 1.549 seconds with return value 0請按任意鍵繼續. . .
第二種:遞歸(函數調用自身)

1??寫法一

#include <stdio.h>int Fact(int n);int main() //主函數{
   int n, cnt;
   scanf("%d", &n);
   cnt = Fact(n);
   printf("%d\n", cnt);
   return 0;}
   int Fact(int n)    //遞歸函數
   {
   int res = n;
   if (n > 1)
       res = res * Fact(n - 1);
   return res;}

測試樣例:7

7 * 6 * 5 * 4 * 3 * 2 * 1
= 1 * 2 * 3 * 4 * 5 * 6 * 7
= 5040

75040--------------------------------Process exited after 2.563 seconds with return value 0請按任意鍵繼續. . .

當然也可以寫成這樣:

2??寫法二

#include <stdio.h>int Fact(int n) //遞歸函數 {
   int res = n;
   if (n > 1)
       res = res * Fact(n - 1);
   return res;}int main() //主函數 {
   int n, cnt;
   scanf("%d", &n);
   cnt = Fact(n);
   printf("%d\n", cnt);
   return 0;}

測試樣例:6

6 * 5 * 4 * 3 * 2 * 1
= 1 * 2 * 3 * 4 * 5 * 6
= 720

6720--------------------------------Process exited after 1.829 seconds with return value 0請按任意鍵繼續. . .

到此,相信大家對“c語言如何計算n的階乘”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南丹县| 潼关县| 岳阳市| 曲松县| 本溪市| 嘉荫县| 洪湖市| 武城县| 通许县| 清河县| 诏安县| 广饶县| 滨海县| 正蓝旗| 平安县| 雷山县| 长兴县| 伊宁县| 新丰县| 白沙| 宁津县| 临汾市| 扶余县| 瑞金市| 迁西县| 若尔盖县| 新河县| 潮州市| 同心县| 化隆| 霸州市| 蓝山县| 垫江县| 潮州市| 玛纳斯县| 县级市| 古交市| 九台市| 郑州市| 南通市| 太仓市|