Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 1
Регистрация: 15.12.2010
Сообщений: 87

Посчитайте сумму всех его цифр

12.10.2019, 15:30. Показов 1626. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте дали задание
Общая формулировка: реализовать класс, содержащий методы, реализующие описанную функциональность.
Данные, поступающие на вход, присваиваются членам класса. Метод , который реализует функциональность, должен возвращать данные соответствующего типа. Ввод данных и вывод результата должны происходить в методе main.
На вход поступает натуральное число. Посчитайте сумму всех его цифр. Для любой заданной цифры выведите количество раз, сколько она встречается в числе.

Я подумал над решением, такой алгоритм получился:
1. Нужно найти количество цифр в числе (думаю через Math.ceil(Math.log10(Math.abs(number) + 0.5)); )
2. Получать целые цифры путем деления на Math.pow (10,number), потом Math.pow (10,number)-1 и так number раз c помощью цикла;
3. Посчитать сумму
4. Когда происходит шаг 2 дописать счётчик для выявления количества цифр

Подскажите я думаю в правильном направлении или есть более простой ход. Буду благодарен за примеры
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.10.2019, 15:30
Ответы с готовыми решениями:

Посчитайте сумму всех цифр числа
Для введённого пользователем с клавиатуры натурального числа посчитайте сумму всех его цифр (заранее не известно, сколько цифр будет в...

Определить количество цифр в числе n и сумму всех его цифр.
Дано натуральное число n, определить количество цифр в числе n и сумму всех его цифр. Значение n ввести с клавиатуры. Количество цифр...

Определить количество цифр в числе n и сумму всех его цифр
Дано натуральное n , определить количество цифр в числе n и сумму всех его цифр. Значение n ввести с клавиатуры. Добавлено через...

2
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
12.10.2019, 17:41
Цитата Сообщение от Ilya123 Посмотреть сообщение
Подскажите я думаю в правильном направлении
Ты думаешь не в правильном направлении, а вообще наобум.
Цитата Сообщение от Ilya123 Посмотреть сообщение
есть более простой ход
Однозначно есть! Прочитать пару глав любого учебника по Java. Чтобы не было вот такой дичи:
Цитата Сообщение от Ilya123 Посмотреть сообщение
Получать целые цифры путем деления на Math.pow (10,number), потом Math.pow (10,number)-1 и так number раз c помощью цикла
Добавлено через 25 минут
Лан, покритиковал, вот один из возможных вариантов
Main
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package ru.ismoke;
 
import java.util.Scanner;
 
public class Cyber {
    private static Scanner scan = new Scanner(System.in);
 
    public static void main(String[] args) {
 
        System.out.print("Введите число: ");
        MyNumber myNumber = new MyNumber(userInput());
        System.out.print("Введите цифру: ");
        int digit = (int) userInput();
 
        System.out.printf("Сумма цифр: %d\n", myNumber.sumOfDigits());
        System.out.printf("Количество цифр %d в числе: %d", digit, myNumber.numCount(digit));
 
    }
 
    private static long userInput() {
        long result;
        while (true) {
            try {
                result = Long.parseLong(scan.next());
                break;
            } catch (NumberFormatException ex) {
                System.out.println("Некорректный ввод, попробуй еще раз!");
            }
        }
        return result;
    }
}

MyNumber
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package ru.ismoke;
 
public class MyNumber {
    private long number;
 
    public MyNumber(long number) {
        this.number = number;
    }
 
    public int sumOfDigits() {
        int sum = 0;
        long _number = number;
        while (_number != 0) {
            sum += _number % 10;
            _number /= 10;
        }
        return sum;
    }
 
    public int numCount(int digit) {
        int count = 0;
        long _number = number;
        while (_number != 0) {
            if (_number % 10 == digit) count++;
            _number /= 10;
        }
        return count;
    }
}

результат
Bash
1
2
3
4
5
6
7
8
Введите число: sdsdsd
Некорректный ввод, попробуй еще раз!
123456789456
Введите цифру: 5
Сумма цифр: 60
Количество цифр 5 в числе: 2
 
Process finished with exit code 0


Добавлено через 1 минуту
Проверку на ввод одинокой цифры не делал. Лень.
1
 Аватар для alicesmagic
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
13.10.2019, 06:19
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Проверку на ввод одинокой цифры не делал. Лень.
Не против, если я попрактикуюсь?

Main
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import java.util.Scanner;
 
public class SimpleClass {
    private static Scanner scan = new Scanner(System.in);
 
    public static void main(String[] args) {
        MyNumber myNumber = new MyNumber(userInputNumber("Введите число: "));
        int digit = userInputDigit("Введите цифру: ");
 
        System.out.printf("Сумма цифр в числе %d: %d\n", myNumber.getNumber(), myNumber.sumOfDigits());
        System.out.printf("Количество цифр %d в числе %d: %d", digit, myNumber.getNumber(), myNumber.numCount(digit));
    }
 
    private static long userInputNumber(String str) {
        System.out.print(str);
        long result;
        while (true) {
            try {
                result = Long.parseLong(scan.next());
                break;
            } catch (NumberFormatException ex) {
                System.out.println("Некорректный ввод, попробуйте еще раз!");
            }
        }
        return result;
    }
 
    private static int userInputDigit(String str) {
        System.out.print(str);
        int result;
        while (true) {
            try {
                result = Integer.parseInt(scan.next());
                if (result > 9 || result < 0) {
                    throw new NumberFormatException();
                }
                break;
            } catch (NumberFormatException ex) {
                System.out.println("Некорректный ввод, попробуйте еще раз!");
            }
        }
        return result;
    }
}

MyNunber
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public class MyNumber {
    private long number;
 
    public MyNumber(long number) {
        this.number = number;
    }
 
    public int sumOfDigits() {
        int sum = 0;
        long num = number;
        while (num != 0) {
            sum += num % 10;
            num /= 10;
 
        }
        return sum;
    }
 
    public int numCount(int digit) {
        int count = 0;
        long num = number;
        while (num != 0) {
            if (num % 10 == digit) count++;
            num /= 10;
        }
        return count;
    }
 
    public long getNumber() {
        return number;
    }
}

результат
Code
1
2
3
4
5
6
Введите число: 65465651
Введите цифру: 87
Некорректный ввод, попробуйте еще раз!
6
Сумма цифр в числе 65465651: 38
Количество цифр 6 в числе 65465651: 3
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.10.2019, 06:19
Помогаю со студенческими работами здесь

Посчитайте сумму квадратов всех двузначных чисел, делящихся на 9.
Всем привет! Помогите написать код к задаче: Посчитайте сумму квадратов всех двузначных чисел, делящихся на 9. При решении задачи...

Дано натуральное число, определите сумму всех его цифр
Дано натуральное число, определите сумму всех его цифр. Решение нужно через цикл goto. Спасибо огромное заранее))

Подпрограммы: Из заданного числа отняли сумму его цифр. Из результата опять отняли сумму его цифр и т.д. Через сколько таких действий получится ноль?
Составить программу решения задачи с использованием подпрограмм. Из заданного числа отняли сумму его цифр. Из результата опять отняли...

Подпрограммы: Из заданного числа отняли сумму его цифр. Из результата опять отняли сумму его цифр и т.д. Через сколько таких действий получится ноль?
Составить программу решения задачи с использованием подпрограмм. Из заданного числа отняли сумму его цифр. Из результата опять отняли...

Дано натуральное число. Найти сумму квадратов всех его цифр
Дано натуральное число n. Найти сумму квадратов всех его цифр. Для ввода исходных данных и вывода результата создать диалоговое окно с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru