печать чисел в виде треугольника в java - PullRequest
1 голос
/ 12 января 2020

В этой задаче пользователь должен ввести начальный номер и размер треугольника. Если начальный номер равен 5, а размер треугольника равен 6, выходной сигнал должен быть таким:

5
19 6
18 20 7
17 25 21 8 
16 24 23 22 9
15 14 13 12 11 10

I Я уже пробовал эту проблему, и это ошибка с моим кодом. Может кто-нибудь помочь мне найти ошибку с этим.

public class MyClass {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        //first number
        int n=in.nextInt();
        //size of the triangle
        int k=in.nextInt();
        int [][]arr=new int[k][k];
        int sizec=k,sizer=k,rstart=0,cstart=0,rend=k-2,cend=k-2,p=0;
        while(sizer>1&&sizec>1){
            int g=cstart;
            for(int i=rstart;i<sizer;i++){
                arr[g][i]=n;
                n++;
                g++;

            }
            for(int i=rend;i>=rstart;i--){
                arr[cend+1][i]=n;
                n++;

            }
            for(int i=cend;i>cstart;i--){
                arr[i][rstart]=n;
                n++;

            }
            rstart++;
            cstart+=2;
            rend-=2;
            sizec-=2;
            sizer-=2;
        }
        for(int j=0;j<k;j++){
            for(int h=0;h<j+1;h++){
                System.out.print(arr[j][h]+" ");
            }
            System.out.println();
        }
    }
}

1 Ответ

3 голосов
/ 12 января 2020

Вы забыли

cend--;

Поместите его туда:

    sizer-=2;
    cend--;
}

Я бы также порекомендовал вам изменить имена переменных в слова, чтобы другие люди могли читать ваш код. Например, cend может быть «columnEnd».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...