С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/34: Рейтинг темы: голосов - 34, средняя оценка - 4.79
0 / 0 / 0
Регистрация: 22.11.2015
Сообщений: 22
1

Вывести все трехзначные числа (100-999), которые делятся на каждое из своих чисел без остатка

22.11.2015, 15:26. Показов 6822. Ответов 7

Author24 — интернет-сервис помощи студентам
Здравствуйте!
Очень надеюсь на вашу помощь, перепробовал кучу вариантов, и все никак не выходит,
Задание: Вывести на экран все трехзначные числа (100-999), которые делятся на каждое из своих чисел без остатка. Если число содержит 0, то сделать игнорирование данного числа.

последнии мысли были такие, но никак не хочет компилироваться,
Java
1
2
for(int i=100;i<=999;i++){
if((i%(i/100)==0)&&(i%((i/10)%10)==0)&&(i%(i%10)==0))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Блог
22.11.2015, 15:26
Ответы с готовыми решениями:

Найти сумму первых n чисел, которые делятся без остатка на 3
Задание Найти сумму первых n чисел, которые делятся без остатка на 3. Получается я рандомлю...

Вывести все трехзначные числа которые делятся без остатка на каждую из своих цифр
вывести все трехзначные числа которые делятся без остатка на каждую из своих цифр

Вывести все 6-ти значные числа, которые делятся без остатка на сумму своих цифр
Вывести все 6-ти значные числа, которые делятся без остатка на сумму своих цифр. подсчитать кол-во...

Вывести все трехзначные числа, которые делятся на суму своих цифр
Вывести все трехзначные числа, которые делятся на суму своих цифр #include &lt;iostream&gt; using...

7
12 / 12 / 4
Регистрация: 04.08.2010
Сообщений: 80
22.11.2015, 16:41 2
Например, так
Java
1
2
3
4
5
6
7
8
        for (int i = 100; i <= 999; i++) {
            int d1 = Math.max(i / 100, 1);           // если значение получилось 0, то заменим его на 1
            int d2 = Math.max(i % 100 / 10, 1);   // т.к остаток от деления на 1, всегда 0,
            int d3 = Math.max(i % 10, 1);           // то есть значение будет проигнорировано
            if ( i % d1 + i % d2 + i % d3 == 0 ) {    // сумма равна 0, когда все слагаемые равны 0 
                System.out.println("i: " + i);
            }
        }
Добавлено через 7 минут
Цитата Сообщение от Vipcars Посмотреть сообщение
но никак не хочет компилироваться
Оно скомпилировалось, но падает во время выполнения, т.к происходит деление на 0.
В консоли должно быть ясно написано, что мол произошел ArithmeticException: divide by zero.
1
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
22.11.2015, 16:45 3
Лучший ответ Сообщение было отмечено Vipcars как решение

Решение

Vipcars, ещё через строки можно

Java
1
2
3
4
5
6
7
8
9
10
for (int i = 100; i < 1000; i++) {
            String string = "" + i;
            if (string.contains("0")) continue;
            String[] elements = new String[]{string.substring(0, 1), string.substring(1, 2), string.substring(2, 3)};
            if (i % Integer.parseInt(elements[0]) == 0
                    && i % Integer.parseInt(elements[1]) == 0
                    && i % Integer.parseInt(elements[2]) == 0) {
                System.out.println(Arrays.deepToString(elements));
            }
        }
1
0 / 0 / 0
Регистрация: 22.11.2015
Сообщений: 22
22.11.2015, 18:54  [ТС] 4
А я голову ломал, что не так.
большое спасибо, очень выручили!)


RomanLesNik, если не затруднит, как сделать исключение в вашем коде на выводе для цифр, содержащих 0? Я знаю только, как сделал YuraAAA, через Array, а если без Array, то нужно писать отдельный метод для исключения?
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
23.11.2015, 13:28 5
Лучший ответ Сообщение было отмечено Vipcars как решение

Решение

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public class Chtoto {
 
    public static void main(String[] args) {
 
        for (int i = 100; i < 1000; i++) {
            int d3 = i % 10;
            int d2 = (i / 10) % 10;
            int d1 = (i / 100) % 10;
            if (d1 == 0 || d2 == 0 || d3 == 0) continue;
            if (i % d1 == 0 && i % d2 == 0 && i % d3 == 0) System.out.println(i);
        }
    }
}
1
0 / 0 / 0
Регистрация: 22.11.2015
Сообщений: 22
23.11.2015, 14:31  [ТС] 6
Большое спасибо!
0
12 / 12 / 4
Регистрация: 04.08.2010
Сообщений: 80
23.11.2015, 20:17 7
Vipcars, прошу прощения, что не внимательно прочитал задания - решил, что нужно исключить только цифру равную 0, а не все число. Собственно, правильное решение уже дали.
0
0 / 0 / 0
Регистрация: 22.11.2015
Сообщений: 22
23.11.2015, 23:04  [ТС] 8
RomanLesNik, Все отлично, Ваша помощь была очень кстати. Большое спасибо, еще раз
0
23.11.2015, 23:04
BasicMan
Эксперт
19315 / 2622 / 84
Регистрация: 17.02.2009
Сообщений: 10,364
Блог
23.11.2015, 23:04
Помогаю со студенческими работами здесь

Найти все натуральные числа <= N, которые делятся без остатка на каждую из своих цифр
Найти все натуральные числа &lt;= N, которые делятся без остатка на каждую из своих цифр

Вывести шестизначные числа, которые делятся без остатка на сумму квадратов своих цифр
Вывести в 10 столбиков все шестизначные числа, которые делятся без остачи на на сумму квадратов...

Вывести на экран все трехзначные числа, которые делятся на последнюю из своих цифр
Вывести на экран все трехзначные числа, которые делятся на последнюю из своих цифр. Числа...

Найдите и выведите на экран все трехзначные числа которые без остатка делятся на 11 и имеют в своей записи хотя бы одну цифру 3
2)Найдите и выведите на экран все трехзначные числа которые без остатка делятся на 11 и имеют в...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru