c語言計算20的階乘結果要用什麼資料型別

時間 2021-08-30 10:36:00

1樓:匿名使用者

使用 unsigned long long 型別絕對的夠了,下圖是最後的運算結果:

unsigned long long 型別是c語言裡面目前精度最高的資料型別,

double或者long double 雖然也佔有8個位元組,但是他們的實際精度只有53位,

而 unsigned long long 卻有64位的精度,

具體的話,可以看我的帖子:

2樓:百文e見

int型別一般是4個位元組,能表示的範圍是-65536到65535,顯然int型別不合適

unsigned int也是4位元組,可以表示4.29×10的9次方左右,而20階乘數量級為2.43×10的18次方左右,所以也不合適

long int有8個位元組,表示範圍從-4294967296到4294967295,也不行

unsigned long有8位元組,表示0到1.8×10的19次方,可以使用

3樓:匿名使用者

c99標準有long long ,原來的可以用double

4樓:

用整型 int float double 這些啊

5樓:無盡的殤飭

int ,double都可以

用c語言程式設計,求從1的階乘一直加到20的階乘。 5

6樓:飛喵某

1、首先開啟c語言編bai輯器,新du

建一個c語言的檔案zhi,匯入頭dao檔案並設定一個主函式版:

2、程式中設定一個權迴圈的臨時變數和接受階乘和的sum變數,迴圈中先遍歷出20以內的數字子,然後計算每個數的階乘,在將它們相加起來,因為是一個非常大的數,所以這裡sum是double型別的,最後把結果輸出就可以了:

3、最後除錯編譯程式,就會看到輸出的20階乘內的和了,是一個非常大的數。以上就是用c語言求20以內階乘和的方法:

7樓:匿名使用者

czx99201的程式不好。重

bai復計算。

階乘du

不必zhi每次都計算。而且為什麼dao要用浮點?專我的屬程式如下:

main ()

printf ("%ld\n", sum);

8樓:愛是一生的語病

#include

main()

printf("ss=%lld",ss);

}輸出ss=2561327494111820313這才是正確答回案答

9樓:育知同創教育

抄#include

baivoid main()

printf("%e\n",sum);

}先求du出第n項階乘,zhi然後把前n-1項階乘的dao和加上第n項。

10樓:匿名使用者

#include

void main()

printf("%e\n",sum);}

用c語言程式設計求出1!+2!+3!+……+20!的值

11樓:啦啦啦額

以下是用c語言程式設計求出1!+2!+3!+……+20!的值示例**

#include

int main()

sum=sum+k;

}printf("1+2!+3!+…+20!=%d",sum);

}擴充套件資料:62616964757a686964616fe78988e69d8331333431366334

c語言的特有特點c語言普適性最強的一種計算機程式編輯語言,它不僅可以發揮出高階程式語言的功用,還具有組合語言的優點,因此相對於其它程式語言,它具有自己獨特的特點。具體體現在以下三個方面:

1、廣泛性。c 語言的運算範圍的大小直接決定了其優劣性。c 語言中包含了34種運算子,因此運算範圍要超出許多其它語言,此外其運算結果的表達形式也十分豐富。

此外,c 語言包含了字元型、指標型等多種資料結構形式,因此,更為龐大的資料結構運算它也可以應付。

2、簡潔性。9 類控制語句和32個keywords是c語言所具有的基礎特性,使得其在計算機應用程式編寫中具有廣泛的適用性,不僅可以適用廣大程式設計人員的操作,提高其工作效率,同 時還能夠支援高階程式設計,避免了語言切換的繁瑣。

3、結構完善。c語言是一種結構化語言,它可以通過組建模組單位的形式實現模組化的應用程式,在系統描述方面具有顯著優勢,同時這一特性也使得它能夠適應多種不同的程式設計要求,且執行效率高。

12樓:

/****程式描述抄:求出1!+2!+3!+……+20!的值。

**演算法思路:先求出每一項的階乘值,然後將所有項的階乘值相加。

*/#include

#define n 20

typedef unsigned long long uint64;  //自定義型別

//求出每一項階乘值的函式

uint64 fact(int n)

int main()

13樓:何禹乾浩博

intmulti(int

n)int

f(int

n)int

main(int

argc,char

*argv)

14樓:藍巍智初晴

#include

void

main()

printf("s=%ld\n",s);}

15樓:邛奧虎蔚星

#include

void

main()

printf("s=%d",s);}

c語言計算為什麼結果不對,c語言計算結果不對 哪裡有問題?

在double轉換成int時,應當考慮到數值並不準確的問題,可以考慮自己要求的精度極限,比如是0.00000001,可以寫成 printf d n int a pow 10,b 1 0.000000005 這樣可以配合取整實現在那位上的四捨五入。 gta小雞 計算整數的冪,不要使用pow函式,它返回...

急c語言階乘問題 求一到一百的階乘和 用while或w

include include include include using namespace std const int maxn 510 char re maxn struct big void read void print big operator big a big operator bi...

C語言求1到10的階乘的和

帥傅香漢戌 程式輸出結果是對的,但是,getch 這句給改一下,getchar 就對了啊,但是我不知道你加這個是說明意思,完全沒有必要的啊。可用不要這句就是的啊。程式就是對的了。輸出結果也是對的。為了驗證,你可以把10改為4,一個小的資料,然後運算驗證一下就可以了。 福清竹普鶯 你試試把for後的兩...