
質問させてください。
for文を使った累乗の計算プログラムを作っています。
数値はコマンドライン引数から取得し、0番目の数字を
i番目の数字分累乗するというものです。
ソースを途中まで作成したのですが、0乗した場合のプログラムが
よく分かりません。どなたか教えていただけないでしょうか?
public class Mondai {
public static void main(String[] args) {
//変数の初期化
int k = 0;
if ( 2 <= args.length && args.length < 3) {
//コマンドライン引数の数だけ配列を用意する
int[] num = new int[args.length];
//0,1番目のコマンドライン引数を整数に変換してnumに代入する
num[0] = Integer.parseInt(args[0]);
k = num[0];
k *= k;
num[1] = Integer.parseInt(args[1]);
//num[1]の掛け算をnum[1]回繰り返す
for (int i = 0; i < num[1] -2; i++) {
k *= num[0];
}
System.out.println("\"" + num[0] +"の" + num[1] + "乗は"+ k + "\"");
if(num[1] == 0) {
System.out.println("\"" + num[0] +"の" + num[1] + "乗は1\"");
}
//args.length <= 1の条件の時
} else if(args.length <= 1) {
System.out.println("引数が足りないため累乗の計算ができません。");
//指定された条件以外の時
} else {
System.out.println("引数が多すぎるため累乗の計算ができません。");
}
}
}
No.2ベストアンサー
- 回答日時:
前者の方は以下のようなことを仰っているのです。
public static void main(String[] args) {
int original = Integer.parseInt(args[0]);
int volume = Integer.parseInt(args[1]);
int result = 1;
for (int i = 0; i < volume; i++) {
result *= original;
}
System.out.println(original + "の" + volume + "乗は" + result);
}
いきなりプログラムを書き始めるより、まずは処理フローを明確にすることが先決です。
回答ありがとうございました。
思慮の浅いお返事をしてしまいお恥ずかしいです。
おかげさまで解決いたしました。
処理フローの明確、心がけます。
ありがとうございました。
No.1
- 回答日時:
Java はよくわからんのですが
>0乗した場合のプログラムがよく分かりません。
最初に k に num[0] を代入するのではなく、1を代入して、単純に num[1] 回 num[0] を掛け算すれば良いのでは?
結果として、num[1] が 0 なら掛け算はおこなわれず、結果は 1 になると思います。
回答ありがとうございます。
説明不足で申し訳ありません。
kに1を代入した場合、for分を利用しての0以外の累乗の計算が出来なくなります。
作成したソース自体、正しいものか自信ありません…。
何か良い手はないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- C言語・C++・C# C言語でif文が予想と違う動きをする件について7 4 2023/03/20 00:26
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- C言語・C++・C# C pointer? or... 2 2022/03/29 00:47
- UNIX・Linux 次の要件を満たすにはどのように修正したらよろしいでしょうか 1 2022/11/24 20:57
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Randomメソッドの確率設定
-
ループ処理の際、最後だけ","を...
-
7つ数字を表示したら改行すると...
-
java キーボード入力された値の...
-
数値⇒漢数字変換 java
-
JAVAのfor文で困っています。
-
javaです。 途中まで出来ている...
-
続・ZZZ,ZZZ,ZZ9形式の金額形式...
-
論理演算子”||”またはの入力方法
-
画面出力の際の繰り返しと入力...
-
javaプログラムについて
-
2つのスクロールバーを連動させ...
-
Java、2の0乗~10乗の表示
-
複数の数字を計算
-
テキストボックスに入力された...
-
countに実行した回数をいれたい...
-
javaプログラミングでの文字化...
-
Javaでゲームを作ったのですが...
-
コマンドライン引数の例外処理...
-
Javaの問題について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ループ処理の際、最後だけ","を...
-
論理演算子”||”またはの入力方法
-
続・ZZZ,ZZZ,ZZ9形式の金額形式...
-
java キーボード入力された値の...
-
Randomメソッドの確率設定
-
テキストボックスに入力された...
-
countに実行した回数をいれたい...
-
総称型ArrayList<E>への参照...
-
javaプログラムについて
-
JAVAのfor文で困っています。
-
繰り返しによる星印の出力
-
Java 配列<選挙>
-
javaです。 途中まで出来ている...
-
数値⇒漢数字変換 java
-
Ctrl+Zが入力されると終了する...
-
java 入力 3 4 3 出力 ABC DEFG...
-
エラー(互換性の無い型)
-
Java 入力した整数値の合計を、...
-
【JAVA <identifier>がありま...
-
2つのスクロールバーを連動させ...
おすすめ情報