No.2ベストアンサー
- 回答日時:
階乗計算でおそらく整数の変数を使用されていると思いますが、Javaの整数の変数は以下のように扱える範囲が限られます(他のプログラム言語でも同様のことが言えますが…)。
byte: -128~+127
short: -32768~+32767
int: -2147483648~+2147483647
long: -9223372036854775808~+9223372036854775807
なお、範囲の最大値(intなら+2147483647)に+1を行うと範囲の最小値(intなら-2147483648)に循環されます。
また範囲の最小値に-1を行うと範囲の最大値に循環されます。
一定値以上の値が負になったり、数値が正しく計算されなかったりするのはそのためです。
エラーについては実際にどのようなエラーが発生するのかを提示して頂ければお答えできますが…。
参考URL:http://www.hellohiro.com/basic/hensuu.htm
この回答へのお礼
お礼日時:2009/06/12 13:37
なるほど、たいへん分かりやすかったです。整数の変数はintになってましたんで、13!からおかしくなったみたいです。
エラーというのは変な値が出てきたんでエラーなのかな?と思っただけで、実際にメッセージが表示されたわけではないので大丈夫です。
具体的な理由が分かってスッキリしました。ありがとうございました。
No.1
- 回答日時:
ソース示さないと分かんないですよ.以下にサンプルのソースを載せておきます.参考にしてください.
import java.io.*;
class Factrial {
public static void main(String args[]) throws Exception {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.print("input natural number: ");
int number = (new Integer(in.readLine())).intValue();
System.out.println(number + "! =" + factrial(number));
}
static int factrial(int number) {
int factrial = 1;
for (int i = 1; i <= number; i++) {
factrial = i * factrial;
}
return(factrial);
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(自然科学) 科学技術計算の仕事について 2 2023/02/04 18:09
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- C言語・C++・C# C言語 3 2022/10/04 15:07
- Java Java 年数計算 3 2023/01/28 10:52
- その他(Microsoft Office) Excelで時間計算(負) 8 2023/02/26 05:47
- C言語・C++・C# numpyスライス機能を使った数値計算 2 2023/05/08 16:01
- Java java 入力された文字列を数値に置き換えて整数にし、計算をしたいです。 <を10として /を1とし 4 2022/05/16 21:08
- その他(プログラミング・Web制作) VBA 1 2023/01/19 16:19
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ループ処理の際、最後だけ","を...
-
Java、2の0乗~10乗の表示
-
java キーボード入力された値の...
-
コマンドライン引数の例外処理...
-
JAVAのfor文で困っています。
-
数値⇒漢数字変換 java
-
学校で課題を出されて困ってい...
-
テキストボックスに入力された...
-
Java キーボードから負の数が入...
-
論理演算子”||”またはの入力方法
-
countに実行した回数をいれたい...
-
Java 入力した整数値の合計を、...
-
javaについて 急ぎ希望
-
java 電卓のプログラム
-
入力された入力値と最大値、最...
-
2つのスクロールバーを連動させ...
-
キーボードから10人分の点数を...
-
フィールド名やメソッド名に日...
-
javaのプログラム
-
総称型ArrayList<E>への参照...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ループ処理の際、最後だけ","を...
-
続・ZZZ,ZZZ,ZZ9形式の金額形式...
-
Randomメソッドの確率設定
-
論理演算子”||”またはの入力方法
-
テキストボックスに入力された...
-
java キーボード入力された値の...
-
countに実行した回数をいれたい...
-
Java 配列<選挙>
-
総称型ArrayList<E>への参照...
-
Java、2の0乗~10乗の表示
-
2つのスクロールバーを連動させ...
-
数値⇒漢数字変換 java
-
Java 入力した整数値の合計を、...
-
配列を逆順させて表示させる方...
-
エラー(互換性の無い型)
-
javaで数独を解くプログラムに...
-
2次元配列の並び替え
-
javaのエラーが回収できない
-
7つ数字を表示したら改行すると...
-
java 電卓のプログラム
おすすめ情報