c言語初心者です。
13までの階乗の値を計算するプログラムを下のように書いたのですが、
#include <stdio.h>
main()
{
int N, fact;
fact=1;
for(N=1; N<=13; ++N){
fact=fact*N;
printf("%d!=%d\n",N, fact);
}
}
このプログラムを実行してみると、12!までは正しい値が出力されるのですが、13!の値が1932053504と出力され、計算機の値と違います。
どこが間違っているのでしょうか。どなたかご教授お願いします。
No.2ベストアンサー
- 回答日時:
fact を int 宣言しているので、 4byte 変数です。
12! = 479001600 = 0x1C8CFC00
13! = 6227020800 = 0x017328CC00
このように、13! 以上は、4byte を超えてしまいます。
従って、4byte を超えた分が無視されて、
13! = 6227020800 = 0x017328CC00
(4byte分のみ)==> 0x7328CC00 = 1932053504
という結果です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語階乗の総和を求める 2 2023/03/04 23:31
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- C言語・C++・C# 3×3のラテン方陣をつくるプログラムを作成したのですが、(↓) #include <stdio.h> 5 2023/07/10 01:53
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
2の補数を計算するプログラム
-
迷路を脱出する経路探索プログ...
-
再起呼び出しの回数をカウント...
-
C言語で%を使わない余りの出し方
-
乱数で交互に偶数、奇数が、、、。
-
コマンドプロンプトのウィンド...
-
関数とビット列
-
【C#】SQL文の中に変数を埋め込...
-
OpenGLの惑星プログラム
-
当たり判定の処理がわかりません。
-
画像の拡大・縮小
-
乱数生成について
-
ModifyWorldTransformの引数XFO...
-
intとlongは同じ?
-
階乗のプログラム
-
C言語
-
C++で表を作成したいのです ...
-
returnの使い方
-
エラー C言語 プログラミング...
-
C言語で簡単なパックマンゲーム...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報