日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言双循环计算n的阶乘,用C语言用循环实现N的阶乘

發(fā)布時間:2023/12/10 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言双循环计算n的阶乘,用C语言用循环实现N的阶乘 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

匿名用戶

1級

2014-03-04 回答

不要用數(shù)組,用vector來實現(xiàn)相應(yīng)的功能,我給你寫個大概的框架,你向里面添加就好了

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

#include?

#include?

#include???????????? //?add?new

usingnamespacestd;

#define?N?10?//算N的階乘

intmain()

{???????//數(shù)組???1位?1!

//int?ary[N]?=?{1,?1};

vector?ary;

ary.resize(N);

//?此處的N就可以是非const類型的量

//?然后你把a(bǔ)ry當(dāng)成ary[N]數(shù)組用就可以了

inti,?j;

for(i?=?2;?i?<=?N;?i++)

{

//各個下標(biāo)的階乘,第0位下標(biāo)是位數(shù),所以從第1位開始

for(j?=?1;?j?<=?ary[0];?j++)

{

ary[j]?=?ary[j]?*?i;

}

//處理進(jìn)位問題?1W就進(jìn)一位

for(j?=?1;?j?<=?ary[0];?j++)

{

if(ary[j]?>=?10000)

{

//進(jìn)位

ary[j+1]?=?ary[j+1]?+?ary[j]?/?10000;

//進(jìn)位后就只留下余數(shù)

ary[j]?=?ary[j]?%?10000;

}

}

//有進(jìn)位的話,位數(shù)就+1

//這里j已經(jīng)是位數(shù)大于1了

if(ary[j]?>=?1)

{

ary[0]++;

}

}

//倒序輸出

for(j?=?ary[0];?j?>?0;?j--)

{

printf("%d",?ary[j]);

}

printf("\r\n");

return0;

}

追問:

這個好像不能實現(xiàn)啊

追答:

你可以從外面讀入N啊

比如,

int N;

sacnf("%d",&N);

然后下面接...

vector ary;

ary.resize(N);

。。。。

不會有錯誤,

下面就是把a(bǔ)ry[N]當(dāng)成你定義的那樣子的數(shù)組使用就好了...

當(dāng)然,記得把define語句刪掉

總結(jié)

以上是生活随笔為你收集整理的c语言双循环计算n的阶乘,用C语言用循环实现N的阶乘的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。