トップページ⇒tech
675コメント266KB

【Java編】 学校の宿題は俺にやらせろ 【Java編】

■ このスレッドは過去ログ倉庫に格納されています
0001糞すれクリエータNGNG
おい!厨房どもJavaの宿題はここに持って来い!
ただGUIかんけーはめんどクセーから、放置するぞ!

☆丸投げ歓迎 AGE進行☆
0320デフォルトの名無しさんNGNG
>>305
class Pyramid {
// 十進数での桁数算出関数
static int calcBeam(int n){
int beam = 1;
for(int d=1; n/d!=0; d*=10){beam++;}
return (beam-1);
}

//main
public static void main(String[] args){
int height; //ピラミッドの高さ

//ユーザー入力の取得
try{
height = Integer.parseInt(args[0]);
}catch(NumberFormatException e){
System.out.println("入力文字列は整数として解釈できません。");
return;
}catch(Exception e){
System.out.println("その他のエラー");
return;
}
(つづく)
0321デフォルトの名無しさんNGNG
(つづき)
int maxValue = height*(height+1)/2;//ピラミッドで一番大きな数
int maxBeam = calcBeam(maxValue); //ピラミッドで一番大きな買うの桁数
int curValue = 1 //カレント値
int curBeam = 1; //カレント桁数
String raw[] = new String[height]; //ピラミッドの格段

//ピラミッドの各段を作成
for(int y=0; y<height; y++){
raw[y] = "";
for(int x=0; x<=y; x++){
String tmp;
tmp += curValue;
//桁数を合わせるためにスペースでパディング
for(int j=0; j<maxBeam - curBeam +1; j++){
if(j%2==0){tmp=" "+tmp;}else{tmp+=" ";}
}
raw[y] += tmp;
curValue++;
curBeam = calcBeam(curValue);
}
}

//中央を合わせて出力
for(int y=0; y< height; y++){
for(int x=0; x< (raw[height-1].length()-raw[y].length()) / 2; x++){
System.out.print(" ");
}
System.out.println(raw[y]);
}
}
}
0322320,321NGNG
しまった、タブがつぶれるんだった。
コマンドラインから出力するピラミッドの段数を引数に渡して起動。
微妙にイビツ。
0323321NGNG
ちょっとミス訂正
>>321
4行目
(誤)int curValue = 1 //カレント値
(正)int curValue = 1; //カレント値

12行目
(誤)String tmp;
(正)String tmp="";
■ このスレッドは過去ログ倉庫に格納されています