2016-04-02 12 views
0

を回文私は(それが期待される出力です)これを再現するために私に尋ねた運動つまずい:のJava - 垂直整数と

 11111 
3456789012109876543 

これは、(一番下)回文です数字が高い9(二倍数字)を縦書きにする必要があります。これは私には複雑に聞こえ、いくつかの助けが必要でした。

class Print { 
    public static void main(String[] args) { 
    System.out.println("Insert a number from 1 to 100: "); 
    int input = Read.anInt(); 
    System.out.println("Insert another number from 1 to 100: "); 
    int output = Read.anInt();  
    int a = input;  
    for (int i = a; i < output; i++){ 
      System.out.print(a); 
      a++; 
     } 
    a = input -1;  
    for (int j = output; j > a; j--){ 
      System.out.print(output); 
      output--; 
     }  
    } 
} 

あなたは9が垂直方向に書き込まれるよりも高いことを確認番号を作成する方法を説明することによって、私を助けてもらえ:これは私が、これまでの回文をやったことある

AdamRice:私はこのことを意味:

3456789111119876543 
     01210 

しかし、私がこれまで行うことができたことは、この混乱である:私は完全に配列を無視してるので

456789101 
0 
111 
1 
121110987654 

は、これはすべて、おそらくです。

+0

私は質問が明確ではないことを恐れています。期待される出力のサンプルを追加できますか? –

+0

@AdamRiceありがとう、私はそれを編集した、私はそれが私に再現するように求めたものは、私が出力として期待したものであることが明らかだと思った。今私はこれを得るだけです:345678910111211109876543、垂直のテキストなし。 –

+0

ありがとうございますが、実際にはありません。予想される出力を参照してください。私が必要としているのは、実際には10,11,12,11,10であるそれらの "11111"です。今私は1行に345678910111211109876543を印刷することができます。 –

答えて

1

少し遅いことをお詫び申し上げます。最後に問題を理解した後、私は解決策があると思う。私は数字の文字列を構築し、それが10未満のフォーマットには0をリードしていた場合

 11111111111  
5678998765 

説明 :入力5と15で

import java.util.Scanner; 

public class VerticalText { 

    public static void main(String[] args) { 

     Scanner Read = new Scanner(System.in); 
     System.out.println("Insert a number from 1 to 100: "); 
     int start = Read.nextInt(); 
     System.out.println("Insert another number from 1 to 100: "); 
     int end = Read.nextInt(); 

     String numbers = ""; 

     for(int i = start; i <= end; i++) 
     { 
      if(i < 10) 
      { 
       numbers += String.format("%02d", i); 
      } 
      else 
      { 
       numbers += i; 
      } 
     } 

     for(int i = (end-1); i >= start; i--) 
     { 
      if(i < 10) 
      { 
       numbers += String.format("%02d", i); 
      } 
      else 
      { 
       numbers += i; 
      } 
     } 

     String row1 = ""; 
     String row2 = ""; 

     char[] chars = numbers.toCharArray(); 

     for(int i = 0; i < chars.length; i++) 
     { 
      if(chars[i] == '0') 
      { 
       chars[i] = ' '; 
      } 
      row1 += chars[i]; 
      i++; 
      row2 += chars[i]; 
     } 

     System.out.println(row1); 
     System.out.println(row2); 
    } 
} 

が、それは次の出力を生成します。この余分な0は単なるプレースホルダです。印刷に関しては、ゼロの代わりにスペースを印刷することができます。

+0

これ!本当にありがとう。申し訳ありませんが、私は自分自身を正確に説明していないあなたの時間を振ってきました。それがトリックでした。魅力のように動作します。 –