Как мне решить этот Java вопрос печати таблицы, используя для l oop? - PullRequest
0 голосов
/ 29 марта 2020

(Распечатать таблицу) Напишите программу, которая отображает следующую таблицу. Преобразуйте числа с плавающей точкой в ​​целые числа.

a b pow(a, b)
1 2 1
2 3 8
3 4 81
4 5 1024
5 6 15625

У меня возникли проблемы с концептуализацией того, как можно упростить этот код с помощью циклов.

public class Exercise_02_eighteen {
    public static void main(String[] args) {
        float a, b;
        System.out.println("a        b        pow(a, b)");
        a = 1;
        b = 2;
        System.out.println((int)a + "        " + (int)b + 
            "        " + (int)Math.pow(a, b));
        a++;
        b++;
        System.out.println((int)a + "        " + (int)b + 
            "        " + (int)Math.pow(a, b));
        a++;
        b++;
        System.out.println((int)a + "        " + (int)b + 
            "        " + (int)Math.pow(a, b));
        a++;
        b++;
        System.out.println((int)a + "        " + (int)b + 
            "        " + (int)Math.pow(a, b));
        a++;
        b++;
        System.out.println((int)a + "        " + (int)b + 
            "        " + (int)Math.pow(a, b));
    }
}

Ответы [ 5 ]

1 голос
/ 29 марта 2020

Просто переместите ваш отпечаток под l oop:

public class Exercise_02_eighteen {

    public static void main(String[] args) {
        System.out.println("a\tb\tpow(a, b)");

        for (int a = 1, b = 2; a <= 5; a++, b++)
            System.out.format("%d\t%d\t%d\n", a, b, (long)Math.pow(a, b));
    }

}
1 голос
/ 29 марта 2020
public class Exercise_02_eighteen {
    public static void main(String[] args) {
        System.out.println("a        b        pow(a, b)");

        for(int a = 1, b = 2, i = 0; i < 5; a++, b++, i++) { // <--
            System.out.println((int)a + " " + (int)b + " " + (int)Math.pow(a, b)); // <--
        } // <--
    }
}
1 голос
/ 29 марта 2020

Вы можете просто l oop сверх a (обратите внимание, что оно варьируется от 1 до 5), и для каждого a , b равно + 1

0 голосов
/ 29 марта 2020

Вам не нужны две переменные. Вы можете сделать это, используя одну переменную следующим образом:

public class Main {
    public static void main(String[] args) {
        System.out.println("a\tb\tpow(a, b)");
        for (int i = 1; i <= 5; i++) {
            System.out.println(i + "\t" + (i + 1) + "\t" + (int) Math.pow(i, i + 1));
        }
    }
}

Вывод:

a   b   pow(a, b)
1   2   1
2   3   8
3   4   81
4   5   1024
5   6   15625
0 голосов
/ 29 марта 2020

Я думаю, что приведенный ниже код поможет вам, есть очень много подходов, но ваш вопрос очень базовый c, поэтому я просто показываю использование l oop в вашей программе.

   public class Exercise_02_eighteen {


     public static void main(String[] args) {
        float a, b, numberOfRows = 5;
        System.out.println("a\tb\tpow(a, b)");
        //removed unused space and use \t : tab
        a = 1;
        b = 2;
        for(int i=1; i< numberOfRows; i++)
        {
                System.out.println((int)a + "\t" + (int)b + "\t" + (int)Math.pow(a, b));
                a++;
                b++;
        }

    }

}

Если Вы хотите написать для той же серии, которую вы показываете в вопросе, тогда вы можете написать код без дополнительных переменных, как показано ниже, или можете взять одну переменную, если требуется.

public class Exercise_02_eighteen {


     public static void main(String[] args) {
        int i, numberOfRows = 5;
        System.out.println("a\tb\tpow(a, b)");
        //removed unused space and use \t : tab
        for(i=1; i< numberOfRows; i++)
        {
                System.out.println((int)i + "\t" + (int)(i+1) + "\t" + (int)Math.pow(i, i+1));
        }

    }

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