A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
★桁あふれ(オーバーフロー)しているはずです。
>PCの構造にそこまで詳しくないので、詳しい理由を教えてください。
↑
C言語の基礎(int型の範囲)に関して詳しくないだけですよ。PCじゃない。
解決策:
・40の階乗を求めるのではなく『r』の次から『n』までの掛け算を行います。
そして『n-r』の階乗で割れば良いでしょう。
つまりnCr、n=40、r=11の計算を工夫します。
nCr=(12 * 13 * … * 40) / (40 - 11)!
nCr=(12 * 13 * … * 40) / (1 * 2 * 3 * … * 11 * 12 * … * 29)
nCr=(30 * 31 * … * 40) / (1 * 2 * 3 * … * 11)
nCr=92279715720192000 / 39916800
nCr=2311801440
このようになります。
でも30~40を乗算すると 9.228×10^16乗となり unsigned long int 型でも計算不可能。
そこで unsigned long long int 型を使えば計算可能となります。
ただし、処理系によっては unsigned long long int 型が利用できない場合が
ありますので注意して下さい。
・以上。
この回答へのお礼
お礼日時:2008/02/01 12:01
最後の表示でunsigned long intの範囲で扱える値に収まっていればいいのではなくて、途中の計算値でもunsigned long intの範囲で扱える値を超えると
オーバーフローになるんですね。
みなさん返事ありがとうございます。
No.2
- 回答日時:
> 桁あふれではない
間違いなくそうだと確認しましたか?
40の階乗はunsigned long int型で扱える範囲を超えますので、
計算の手順(先に40の階乗を求めようとする、など)によっては
桁あふれします。
No.1
- 回答日時:
>値が表示されませんでした
何も表示されなかったんですか?
プログラムが明記されてないのでわかりませんが
答え自体は桁あふれしないと思いますが計算途中で
あふれてるとかはないですかね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- C言語・C++・C# C言語 3 2022/10/04 15:07
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- その他(データベース) Accessフォームにて指定のフィールドの平均値を小数点第一位で表示できない 2 2022/08/30 17:19
- JavaScript Javascript で、0000 から 9999 までの表を作りたい。 6 2022/09/11 14:47
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- 数学 場合の数、確率 33 分配 1 2023/07/08 18:08
- Excel(エクセル) エクセルのセルの書式設定・ユーザー定義の条件設定について 1 2022/08/17 21:56
- C言語・C++・C# C言語 共用体について コマンドライン引数で値を2つ入力したときに、argv[2]の値をUNI u1 4 2022/04/25 20:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelでPC(パソコン)によって...
-
c languageで 簡単な質問があ...
-
2進数の足し算(C言語)
-
16進数 加算 減算 C言語
-
fortranでx=1としても0.9..が入る
-
除算を使わずに10で割りたい。
-
三角比の俯角の計算
-
Double型について
-
符号付整数の演算結果を答えよ ...
-
計算が合わない
-
100桁の計算ができなくて困って...
-
VB.net Double と...
-
C言語プログラミングにて、arct...
-
C言語の実数演算の速度は、値に...
-
C言語 型変換のタイミング
-
【C++】double の計算結果がお...
-
VBAでの割り算の余りの求め方
-
2進数、16進数、10進数のことを...
-
多桁計算
-
2の補数について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
O(n log n)について2
-
三角比の俯角の計算
-
c languageで 簡単な質問があ...
-
16進数 加算 減算 C言語
-
ExcelでPC(パソコン)によって...
-
VB.net Double と...
-
”/”を使わずに割り算したいんで...
-
ExcelのINT関数の計算結果がお...
-
有効数字について 以前質問をし...
-
floatの有効桁数
-
三菱シーケンサ(Aシリーズ)で...
-
距離から緯度経度を求める方法
-
VBAでミリ秒まで出力する方法
-
EXCELの関数"STDEV(標準偏差)"...
-
除算を使わずに10で割りたい。
-
C言語プログラミングにて、arct...
-
VB6.0での小数点の扱いについて
-
VBAでの割り算の余りの求め方
-
255の2の補数、B'00000001'が-...
-
変換指定子%22-16gの表示...
おすすめ情報