-4

//質問自体(その後の私のコード)

変数 n は、ランダムに生成された整数です。文字 '*' と '#' を出力して、最初の行に星のみが含まれ、最後の行に番号記号のみが含まれるようにします。星の数は、連続する行ごとに減少します。行の合計文字数は n で、n + 1 行あります。

たとえば、n の値が 5 の場合、プログラムは次のように出力します。

 *****  
 ****#    
 ***##      
 **###       
 *####      
 #####      

//以下の私のコード!

Random r = new Random();       
int n = r.nextInt(5) + 10;    
System.out.println("n: "+n);

while(n>0){

for(int star = n; star>0; star--){
  System.out.print("*");
}

for(int hash = 0; hash<n; hash++){
  System.out.print("#");

    } 

    System.out.println("");  //new line
n--;


}

//私のコード出力 - 問題: # のサイズは、* のように減少するのではなく、0 から増加する必要があります

**********##########
*********#########
********########
*******#######
******######
*****#####
****####
***###
**##
*#
4

3 に答える 3

2

するべきこと:

nスター、0ハッシュを出力します。星、ハッシュを
印刷します。スター、ハッシュを 出力します。n-11
n-22

何をしているの:

nスター、nハッシュを出力します。星、ハッシュを
印刷します。スター、ハッシュを 出力します。n-1n-1
n-2n-2

(n to 1 は 0 to n-1 と同量)

したがって、ここで行うべき自然なことは、出力するハッシュの数のためにループの外側に別の変数を作成することです。

nまたは、オリジナルを思い出すこともできますhash count = n - star count

これが単にコードを提供する以上の助けになることを願っています。

于 2013-08-26T13:00:27.760 に答える
0

これは宿題のように見えるので、それを実行するコードを提供するのは良い考えではないと思います。基本的な考えを示します。

覚えておくnべきことは、最初の星の数である必要があるということです。ループ カウンターが増加するたびにn減少し、ハッシュを 1 つ追加できます。では、追加するハッシュの初期数はいくつにすべきでしょうか?

于 2013-08-26T12:40:59.880 に答える