javaで繰り返しforを用いて10進数123を8進数に変換するプログラムを作りたく思い質問にまいりました。
以下のような説明を受けましたが、うまくいきません。
10進数123を変数xに代入する
以下の手順を何回か繰り返すfor(int i=0; i < ?; i++)
a) xを8で割った余りを文字列変数yの前に追加. y = ?
b) xを8で割った商をxに代入する. x = ?
変数yを表示する.System.out.println(?)
何回繰り返すかは123を手計算で8進数にした時の数字で検討せよとのことなので
for(int i=0; i < 3; i++) でよいと思うのですが、
その後の手順a.bで手が止まってしまいます。
public class a {
public static void main(String[] args){
int x;
x=123;
int y;
y=7;
int z;
z=x%8;
x=x/8;
String s="y";
s=s+x;
s=s+z;
for (int i=0;1<3;i++){
System.out.println("y");
}
}
}
自分ではこのように作ってみたのですが思うように動作しません。
どの辺りをどう改善すべきなのか、どうかご指導ください。
よろしくお願い致します。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
ではヒントを。
---------------------------------------------------------------------
以下の手順を何回か繰り返すfor(int i=0; i < ?; i++)
a) xを8で割った余りを文字列変数yの前に追加. y = ?
b) xを8で割った商をxに代入する. x = ?
変数yを表示する.System.out.println(?)
---------------------------------------------------------------------
ここで言う「以下の手順」とは a) と b) のはずです。
for文は "{" と "}" で括った中味を繰り返します。
以上、頑張って下さい。
No.2
- 回答日時:
まず、コンピュータにとって整数を 10進数、8進数として扱うとは「表示上の問題」「入出力上の問題」となります。
(ユーザー) (コンピュータ) (画面)
10進数の数字 -入力→ 2進数で保持 -出力→ 8進数の数字
ということです。
なので、問題文は「8進数に変換せよ」ですが、実際に変換する必要はなく、「8進数で画面に表示せよ」ということです。
y は int ではなく String (あるいは StringBuilder)として宣言し、「8進表現」を組み立てて画面に表示して下さい。
# java.lang.System.out.printf でいいじゃないか。
No.3
- 回答日時:
>どの辺りをどう改善すべきなのか、どうかご指導ください。
以下のコードでご確認ください。
public static void main(String[] args) {
String ans = getDecToOct( 123 );
System.out.println( ans );
}
/**
* 10進数を8進数に変換します
* @param x 10進数のint型数値
* @return 8進数に変換したString型文字列
*/
public static String getDecToOct( int x ) {
String y = "";
for(int i=0, n=(int)(Math.log(x) / Math.log(8)); i<=n; i++) {
int z = x % 8;
x /= 8;
y = z + y;
}
return y;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- Java Java 配列<選挙> 4 2023/07/31 15:07
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ループ処理の際、最後だけ","を...
-
論理演算子”||”またはの入力方法
-
Java、2の0乗~10乗の表示
-
7つ数字を表示したら改行すると...
-
java キーボード入力された値の...
-
コマンドライン引数の例外処理...
-
countに実行した回数をいれたい...
-
テキストボックスに入力された...
-
javaのエラーが回収できない
-
Randomメソッドの確率設定
-
続・ZZZ,ZZZ,ZZ9形式の金額形式...
-
総称型ArrayList<E>への参照...
-
javaプログラムについて
-
javaでforを用いて進数を変換す...
-
Ctrl+Zが入力されると終了する...
-
複数の数字を計算
-
javaについての質問です
-
繰り返しによる星印の出力
-
配列を逆順させて表示させる方...
-
数値⇒漢数字変換 java
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ループ処理の際、最後だけ","を...
-
java キーボード入力された値の...
-
Java、2の0乗~10乗の表示
-
数値⇒漢数字変換 java
-
論理演算子”||”またはの入力方法
-
コマンドライン引数の例外処理...
-
JAVAのfor文で困っています。
-
続・ZZZ,ZZZ,ZZ9形式の金額形式...
-
Java 入力した整数値の合計を、...
-
7つ数字を表示したら改行すると...
-
テキストボックスに入力された...
-
countに実行した回数をいれたい...
-
総称型ArrayList<E>への参照...
-
Randomメソッドの確率設定
-
Ctrl+Zが入力されると終了する...
-
学校で課題を出されて困ってい...
-
Java キーボードから負の数が入...
-
キーボードから10人分の点数を...
-
階乗の式
-
Java 配列<選挙>
おすすめ情報