Почему первый не может быть выполнен ?? и если я хочу использовать первый, что я должен добавить ?? это сумма = (длинная) сумма + n% 10; ? ПОМОГИТЕ MEEEEE - PullRequest
0 голосов
/ 07 апреля 2020
import java.util.Scanner;

public class Exercise33 {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Input an integer: ");
        long n = input.nextLong();
        System.out.println("The sum of the digits is: " + sumDigits(n));

    }

    public static long sumDigits(long n) {
        int sum = 0;
        while (n != 0) {
            long sum  =  sum + n % 10;
            n = n/10;
        }
        return sum;
    }
 }

import java.util.Scanner;

public class Exercise33 {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Input an integer: ");
        long n = input.nextLong();
        System.out.println("The sum of the digits is: " + sumDigits(n));

    }

    public static int sumDigits(long n) {
        int sum = 0;
        while (n != 0) {
            sum  += n % 10;
            n /=10;
        }
        return sum;
    }
 }

Почему первый не может быть выполнен ?? и если я хочу использовать первый, что я должен добавить ?? это сумма = (длинная) сумма + n% 10; ? ПОМОГИТЕ MEEEEE

Ответы [ 2 ]

2 голосов
/ 07 апреля 2020

Взгляните на

public static long sumDigits(long n) {
    int sum = 0;
    while (n != 0) {
        long sum  =  sum + n % 10;
        n = n/10;
    }
    return sum;
}

У вас есть 2 переменные с именем "сумма" в той же области.

int sum , длинная сумма .

0 голосов
/ 07 апреля 2020

Почему у вас sum декларет с int ? Параметр из метода sumDigits имеет тип данных long . Поэтому измените тип данных с sum в методе с int на long . Тогда вы должны объявить sum в то время не более. Я надеюсь, что это то, что вы ищете, в противном случае вы должны задать свой вопрос более четко, где проблема ...

Первый пример:

public static long sumDigits(long n) {
    long sum = 0;
    while (n != 0) {
        sum  = sum + n % 10;
        n = n/10;
    }
    return sum;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...