-2

これはおそらく非常に単純なことですが、整数を縦に書く方法を本当に理解できないようです。たとえば、9、21、63、および 501 の 4 つの整数を持つ配列がある場合、結果は次のようになります。

     9  2  5  6
        1  0  3
           1  

これは私のプログラムの小さなステップであり、おそらく最も簡単ですが、その方法を理解できません:(プログラムを完了することができるように、誰かが私を助けてくれるか、私を案内してくれますか?

4

3 に答える 3

1

この擬似コードを試してください

int[] list = new int[] {9,21,63,501};
bool finished = false;

if (list.Count > 0) {

   for (var j=0;!finshed; j++) {
      finished = true;

      for (var i = 0; i<list.Count;i++) {
         String val = list[i].ToString();
         if (val.length>j) {
            write(val.charAt(j));
            finished = false;
         }
      }
   }
}
于 2013-02-20T02:16:59.907 に答える
0

`public class VerticalPrintService {

private int[] data;

public VerticalPrintService( int[] intArray ) {

    this.data = intArray;

}

public void printVertically(){
    int cols = data.length; // # of columns
    int rows = getRows(); // # of rows

    System.out.println("cols: " + cols);
    System.out.println("rows: " + rows);

    String[][] matrix = new String[rows][cols];
    int rowIndex = 0;
    int colIndex = 0;

    // populate 2d array
    for ( int i : data ) {
        String str = String.valueOf(i);
        for ( int j = 0; j < str.length(); j++ ) {
            matrix[rowIndex][colIndex] = String.valueOf(str.charAt(j));
            rowIndex++;
        }

        colIndex++;
        rowIndex = 0;
    }

    // print
    for ( int i = 0; i < rows; i++ ) {
        for ( int j = 0; j < cols; j++ ) {
            if ( null == matrix[i][j] ) {
                System.out.print("\t");
            } else {
                System.out.print( matrix[i][j] + "\t" );
            }
        }
        System.out.println();
    }
}

private int getRows(){

    int max = 0;
    for ( int i : data ) {
        int len = String.valueOf(i).length();
        if ( len > max ) {
            max = len;
        }
    }

    return max;
}

}`

そしてあなたのメインメソッドで

`public static void main(String[] args) {

int[] array = { 9, 53, 501, 90 };
VerticalPrintService vps = new VerticalPrintService(array);
vps.printVertically();

}`

于 2013-02-20T04:21:16.657 に答える