11

私の問題は、この出力を作成するためにネストされた for ループを使用することです。

         |         |         |         |         |         |
123456789012345678901234567890123456789012345678901234567890

int 10 を 0 に置き換える最善の方法がわかりません。いくつかの方法を試しましたが、ギミックがあり、私には正しくないようです。私の問題が明らかであることを願っています。説明するのはちょっと難しいです。誰かが私を正しい方向に向けることができますか?

私は正しい出力を達成しましたが、これについてもっと良い方法があることを教えてくれます。これが私のコードです:

int k = 0;  
for (int i=1; i<=6; i++){
   System.out.print("         |");
}
System.out.println();
for (int m=0; m<6; m++){
   for (int j=1; j<10; j++){
      System.out.print(j);
   }
   System.out.print(k);
}

すごい!モジュロは私が探していた答えでした。私はこれではるかに快適に感じます:

for (int i=1;i<=6;i++){
   System.out.print("         |");
}
System.out.println();
for (int m=0;m<6;m++){
   for (int j=1;j<=10;j++){
      System.out.print(j % 10);
   }
}
4

8 に答える 8

11

モジュロ演算子 %を使用します。それはあなたに残りを与えます。したがって、ループを 1 から開始し、1 を 10 で割ると余りは1になります。2 を 10 で割ると、余りは2になります。10 を 10 で割ると、出力は0になります。

for(int i = 1; i <= 10; i ++) {
      System.out.println(i % 10);
}
于 2010-12-09T23:06:01.407 に答える
10

mod 演算子 ( %) が必要です。

10 % 10 = 0
11 % 10 = 1

除算後の剰余を計算します。

于 2010-12-09T23:04:39.937 に答える
8

なぜこれを生成できないのですか:

012345678901234567890123456789012345678901234567890123456789

そして、文字を前面から外して端に貼り付けますか?

于 2010-12-09T23:05:36.610 に答える
3

多くの方法があります。最も単純なのは、おそらく次のとおりです。

for (int i = 1; i <= 10; i++) {
   System.out.println(i % 10);
}

ループが 2 つある場合は、次の事実を使用できます。

for (int i = 0; i < 5; i++) {
   for (int j = 1; j <= 9; j++) {
       System.out.print(j);
   }
   System.out.print(0);
}
于 2010-12-09T23:05:28.830 に答える
2

これが一種の patternを表す場合、単純にパターンを定義して結果を画面に出力する (または必要なことを行う) だけではなく、次のようになります。

printPattern("         |", 6);
printPattern("1234567890", 6);

public void printPattern(string pattern, int max)
{   
    int i = 0; 
    while (++i <= max)
        System.out.print(pattern);
    System.out.println();
}
于 2010-12-10T01:04:57.520 に答える
0

モジュロを使用してみることができます:

i = i % 10
于 2010-12-09T23:05:22.557 に答える
0
for (int i=1; i<100; i++)
    System.out.println(i%10);
于 2010-12-09T23:07:11.703 に答える
0

非モジュロソリューションは次のとおりです。

$x = 1;
while(1){
  if($x>9){
     $x=0;
  }
print $x;
$x++;
}

ええ、ええ、安いのはわかっています。でもうまくいきます。;)

于 2010-12-09T23:12:39.997 に答える