これはおそらく非常に単純なことですが、整数を縦に書く方法を本当に理解できないようです。たとえば、9、21、63、および 501 の 4 つの整数を持つ配列がある場合、結果は次のようになります。
     9  2  5  6
        1  0  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;
         }
      }
   }
}
`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();
}`