如何在c中實現一個程序來計算2^999?在C編程中計算一個很長的數字
回答
你需要使用一個大的整數庫,它可以處理任意大小的數組。 GMP很受歡迎:http://gmplib.org/。
如果您願意犧牲精確度,您可以使用double
,只需使用pow()
(2^999 =〜5.4 * 10^300)即可表示值高達約1.8 * 10^308。
#include <math.h>
double a = pow(2, 999);
...受C適當執行:-) – 2012-02-23 19:38:31
printf("%.0f\n", 0x1p999);
哎呀,太短所以加入一些隨機的文字..
bc
有內置的一個BIGNUM庫,是每一個Unix兼容的系統名副其實的。
#include <stdio.h>
main() {
FILE *p;
p=popen("bc","w");
fprintf(p, "2^999\n");
fflush(p);
fclose(p);
exit(0);
}
聖牛,夥計..真的嗎?爲什麼不寫一個shell腳本呢? – 2012-02-24 01:18:02
@VladLazarenko:因爲OP要求C中的程序... – tomlogic 2012-02-24 16:34:03
#include <stdio.h>
#include <string.h>
void mul2(char *n){
int c = 0;
while(*n){
int v;
v = c + (*n - '0') * 2;
c = v/10;
*n++ = v % 10 + '0';
}
if(c) *n++ = c + '0';
*n = '\0';
}
void print(char *n){
strrev(n);
printf("%s\n", n);
}
int main (void){
char num[302] = "1";
int i;
for(i=0;i<999;i++)
mul2(num);
print(num);
return 0;
}
302:(((log10 2)* 999)綜合爲301)+ 1(對於'\ 0') – BLUEPIXY 2012-02-23 22:06:42
- 1. C編程:計算字符串中出現的字長
- 2. 計算一個數字的長度
- 3. 在C++中計算字符串中最長的一串字符
- 4. c - 要很長的數字
- 5. 計算這個很長的Jquery語句
- 6. 在C中計算Var參數長度
- 7. C編程計算
- 8. PHP字長密度/計數,計算爲一個字符串
- 9. 在長列表中計算數字集
- 10. MATLAB計算一個整數的長度
- 11. 計算一個字符在c編程中出現在字符串中的次數?
- 12. 計數字符編程c
- 13. 寫一個函數計數(數字,數組,長度),它將計算數字出現在數組中的次數
- 14. 閱讀很長的一行文字C#
- 15. 計算在套接字編程中接收到的字符數
- 16. 編譯時間很長C++
- 17. C/C++很長很長到Java長
- 18. 計算字符串中的字 - c編程
- 19. C編程(GPA計算器)
- 20. C編程和計算
- 21. C編程 - 不計算值
- 22. 在一個字符串中計算一個序列C語言
- 23. C++雙待很長很長
- 24. 在一個整數中計算1的個數C
- 25. 計算字符串中的字長
- 26. 計算一串數字中的數字
- 27. 計算在一個數組中有多少個數字在1.5 - 35 C之間#
- 28. 在C中的一行中計算char字符數
- 29. C#編寫一個程序,計算五個考試分數的平均值
- 30. 什麼是一個很好的教程/如何在.net/c#套接字編程
查找一個[BIGNUM庫](http://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic#Libraries)。 – Mysticial 2012-02-23 19:34:39
你不需要爲此編寫一個程序,結果是3005中的5.35754304×10。完成。 – 2012-02-23 19:35:59
@VladLazarenko - 你如何得出這個結論? – Illusion03 2012-02-23 19:38:20