課程
/后端開發(fā)
/C
/C語(yǔ)言入門
階乘是啥?那段代碼的運(yùn)行流程是什么樣的,有大神幫忙解答嗎?我是不是少上了一課?
2023-12-14
源自:C語(yǔ)言入門 5-7
正在回答
階乘是所有小于及等于該數(shù)的正整數(shù)的積。
階乘在數(shù)學(xué)課程里面有介紹,階乘用“n!”表示n的階乘。
1的階乘:1!=1*1=1;
2的階乘:2!=2*1=2;
3的階乘:3!=3*2*1=6;
4的階乘:4!=4*3*2*1=24;
5的階乘:5!=5*4*3*2*1=120;
...
n的階乘:n!=n*(n-1)*(n-2)*(n-3)*...*(n-(n-1));
階乘:
比如3的階乘就是:3*2*1=6
6的階乘就是:6*5*4*3*2*1=720
代碼流程:
#include <stdio.h>
/* 定義獲取單詞數(shù)量的函數(shù) */
int getWordNumber(int n)
{? ?
? ? if(n == 1)
? ? {
? ? ? ? return 1;? ? //第一天只會(huì)1個(gè)單詞
? ? }
? ? else{
? ? ? ? return? getWordNumber(n-1)+n;? ? ? //到第天會(huì)的單詞數(shù)量
}
int main()
{
? ? int num = getWordNumber(10);? ? ?//獲取會(huì)了的單詞數(shù)量
? ? printf("小明第10天記了:%d個(gè)單詞。\n", num);
? ? return 0;
n=10,運(yùn)行g(shù)etWordNumber函數(shù),運(yùn)行return??getWordNumber(n-1)+n;?? 即為return??getWordNumber(10-1)+10;??然后運(yùn)行g(shù)etWordNumber(10-1) 即為return??getWordNumber((10-1)-1)+(10-1)即getWordNumber(9-1)+9,然后運(yùn)行g(shù)etWordNumber(9-1) 即為return??getWordNumber((9-1)-1)+(9-1)即getWordNumber(8-1)+8,然后運(yùn)行g(shù)etWordNumber(8-1) 。。。 直到 return??getWordNumber((2-1)-1)+(2-1)即getWordNumber(1-1)+1,然后運(yùn)行g(shù)etWordNumber(1-1) 即為return??getWordNumber(1-1)+1;?? 然后運(yùn)行g(shù)etWordNumber(0)=1 綜上代碼運(yùn)算結(jié)果為10+9+8+。。。+2+1
舉報(bào)
C語(yǔ)言入門視頻教程,帶你進(jìn)入編程世界的必修課-C語(yǔ)言
6 回答代碼和標(biāo)答是一樣的…但還是運(yùn)行失敗,求大神解答
1 回答為什么我的運(yùn)行結(jié)果是5050,求各位大神解答
6 回答b++不是等于10嗎?為啥是9,求大神解答
1 回答代碼驗(yàn)證過了,但運(yùn)行結(jié)果是錯(cuò)的,怎么回事,求大神解答
2 回答這樣怎么也是運(yùn)行成功呢?求大神解答
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2024-08-23
階乘是所有小于及等于該數(shù)的正整數(shù)的積。
階乘在數(shù)學(xué)課程里面有介紹,階乘用“n!”表示n的階乘。
1的階乘:1!=1*1=1;
2的階乘:2!=2*1=2;
3的階乘:3!=3*2*1=6;
4的階乘:4!=4*3*2*1=24;
5的階乘:5!=5*4*3*2*1=120;
...
n的階乘:n!=n*(n-1)*(n-2)*(n-3)*...*(n-(n-1));
2024-06-14
階乘:
比如3的階乘就是:3*2*1=6
6的階乘就是:6*5*4*3*2*1=720
代碼流程:
#include <stdio.h>
/* 定義獲取單詞數(shù)量的函數(shù) */
int getWordNumber(int n)
{? ?
? ? if(n == 1)
? ? {
? ? ? ? return 1;? ? //第一天只會(huì)1個(gè)單詞
? ? }
? ? else{
? ? ? ? return? getWordNumber(n-1)+n;? ? ? //到第天會(huì)的單詞數(shù)量
? ? }
}
int main()
{
? ? int num = getWordNumber(10);? ? ?//獲取會(huì)了的單詞數(shù)量
? ? printf("小明第10天記了:%d個(gè)單詞。\n", num);
? ? return 0;
}