Возведение числа в степень; Повторяющиеся слова

import java.util.*;
import javax.swing.*;
public class ZhangIDK
{
    public static void main (String[] args)
    {
        Scanner sc = new Scanner (System.in);
        System.out.println ("Please enter a number");
        int h = sc.nextInt();
        System.out.println ("Please enter another number");
        int i = sc.nextInt();
        System.out.println ("Please enter a string/word");
        String j = sc.nextLine();
        System.out.println ("Please enter a number");
        int k = sc.nextInt();
        average (1, 2, 3, 4, 5, 6, 7);
        least (1, 2, 3, 4, 5);

    }

    public static void average (int a, int b, int c, int d, int e, int f, int g)
    {
        int y = a + b + c + d + e + f + g;
        y/=7;
        System.out.println (y);
    }

    public static void least (int q, int r, int s, int t, int u)
    {
        int Smallestnumber = 100;
        int number = 1;
        if (number < Smallestnumber)
        {
            Smallestnumber = number;
            number++;
        }
        System.out.println("The smallest number is" +Smallestnumber+ ".");
    }

    public static void power (int h, int i)
    {

    }

    public static void repeater (String j, int k)
    {

    }
}

На нашем уроке программирования мы изучаем методы. Наш учитель дал нам эту вещь, где в первом методе мы нашли среднее из 7 (предварительно объявленных) чисел, во втором методе мы нашли наименьшее число из 5 (предварительно объявленных) чисел. В третьем методе мы должны использовать сканер для ввода двух чисел, и первое число возводится в степень второго числа. Пример: 5, 2; программа должна вывести 25 (5^2). И, наконец, в четвертом методе мы должны снова использовать сканер и ввести строку и число, и программа должна вывести строку столько раз, сколько число. Пример: Билл, 3; компьютер выдаст: Билл Билл Билл.

У меня проблемы с третьим и четвертым способами. В моем мощном методе, когда я ввожу, например, 2 и 4, программа просто печатает 2. Кроме того, когда я пытаюсь сделать четвертый метод, он почему-то не работает, хотя выглядит так. должно работать нормально. Одна вещь заключается в том, что часть, где его system.out.println вопрос «Пожалуйста, введите произведение» и «Пожалуйста, введите число», два вопроса объединяются в один кусок, поэтому у меня нет возможности ввести слово. Пожалуйста помоги!


person Sarah    schedule 04.03.2014    source источник


Ответы (3)


Я не думаю, что в домашнем задании здесь можно использовать Math.pow.

У этих двух методов есть нечто общее: оба они могут быть реализованы с помощью цикла for.

public static void power (int h, int i){
    int result = 1; //If i == 0 then h^i == 1

    for (int tmp=0; tmp<i; tmp++){
        result *= h
    }
    System.out.println(result);
}

public static void repeater (String j, int k){
    for(int tmp = 0; tmp<k; tmp++){
        System.out.print(j + " ");
    }
}
person albusshin    schedule 04.03.2014
comment
если то, чему учат, это методы, Math.pow() в одном может быть в порядке. Тем не менее, плакату лучше изучить оба способа написания силы. - person La-comadreja; 05.03.2014
comment
Да, учитывая, что это довольно тривиальный метод, я подумал, что, возможно, они хотят, чтобы студенты реализовали его самостоятельно. :) - person albusshin; 05.03.2014
comment
Я попробовал ответ Альбуса Шина, но когда я поднял, например, 2 до 4, программа просто распечатала 2. Есть предложения, почему? - person Sarah; 05.03.2014

public static void power(int h, int i){
            System.out.print(Math.pow(h, i));
        }

        public static void repeater(String name, int count){
            for(int i = 1; i<=count; i++){
                System.out.print(name+" ");
            }

В Java уже позаботились о том, чтобы получить мощность чисел, вместо того, чтобы запускать цикл, который умножает число само на себя. чтобы использовать функцию, вам нужно вызвать Math.pow

Как вы можете видеть выше, Math.pow() принимает целочисленные входные данные (или двойные), первый вход которых является основным числом, а второй - степенью...

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

person 1baga    schedule 04.03.2014

public static void power (int h, int i)
{
    System.out.println(Math.pow(h, i));
}

Math.pow() — это стандартная библиотечная функция для возведения числа в степень.

public static void repeater (String j, int k)
{
    for (int i = 0; i < k; i++) System.out.println(j);
}

Что это делает, так это то, что для каждого значения от 0 до k-1 печатается строка j.

person La-comadreja    schedule 04.03.2014