2^999を計算するためにcでプログラムを実装する方法は?Cプログラミングで非常に長い数値を計算する
答えて
任意のサイズの配列で動作する大きな整数ライブラリを使用する必要があります。 GMPは普及している:http://gmplib.org/。
精度を犠牲にしたい場合は、pow()
(2^999 =〜5.4 * 10^300)を使用するだけで、約1.8 * 10^308までの値を表すdouble
を使用できます。
#include <math.h>
double a = pow(2, 999);
... Cの適切な実装の対象: –
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);
}
聖なる牛、おい...本当に?なぜシェルスクリプトを書かないのですか? –
@VladLazarenko:OPはC言語のプログラムを要求したので... – tomlogic
#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
- 1. この非常に長いJqueryステートメントを計算する
- 2. C++の非常に長い型の場合、大きな計算のために自分の非常に長い型を作成できますか?
- 3. 目的C計算機のプログラミング変数
- 4. 計算距離が非常に遅い
- 5. 非常に大きな整数を計算する
- 6. 私はC++でのプログラミングに非常に新しいです引数
- 7. 非常に長いデシマルの算術演算
- 8. Cの数値計算ライブラリ
- 9. Cプログラミングでは、長い二
- 10. 分母が非常に小さいときに数を計算する方法
- 11. 非常に長い2進数のデコード
- 12. ループ計算の再帰関係が非常に長くかかる
- 13. アドレスの計算:ポインタ+非負の数値
- 14. プログラミングCループ不正確な計算
- 15. 非常に長いRxイベントチェーン
- 16. 非常に長い領域でレンダリングする複数のオブジェクト、キャンバス?
- 17. IE「スタイル計算」のパフォーマンスがAngularJSアプリで非常に遅い
- 18. WebWorkersを使用して非常に長いページの単語頻度を計算できますか?
- 19. Cシェルの数値の合計を計算する
- 20. 変数iは、関数の値を計算する非常に簡単なコードを作っ
- 21. 非常に大きな数値で算術演算を行うアルゴリズム
- 22. perlで非常に大きな数値を高速に乗算する
- 23. 計算/ Iは、マトリックスを有する並列プログラミングC++
- 24. c給与を計算するプログラミング機能
- 25. ファイル内の数値をCで計算する
- 26. 擬似乱数ジェネレータを計算可能な通常の数値
- 27. テンソル上での数値計算によるグラフの計算?
- 28. の計算が非常に低いpvaluesのPython
- 29. 非常にC++プログラミングの新機能 - C++関数は0引数を取らない
- 30. 非常に小さな数値のbcmath演算
[BIGNUMライブラリ](http://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic#Libraries)を探します。 – Mysticial
プログラムを書く必要はありません。結果は5.35754304×10 in 300です。完了。 –
@VladLazarenko - あなたはその結論にどのように達しましたか? – Illusion03