Описываем числа

  • 8
  • Недоступна
Представим себе, что нам нужно разделить числа по каким-то признакам. Например, по чётности или по количеству разрядов. Представили? А теперь за дело: пишем программу, которая описывает введенное пользователем число (оно должно находиться в диапазоне от 1 до 999), указывая в строке вывода, чётное ли это число и сколько в нём цифр.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (255)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Michael 5 уровень, Москва
позавчера, 17:16
if (a<1||a>999) System.out.print(""); Ну вдруг кому-то пригодится
Marsel Ganyalin 7 уровень, Санкт-Петербург
воскресенье, 08:52
сделал топорно. не знаю пока других методов на 7 уровне. наверно надо пробовать по разному и искать более компактное решение .
Andrei 4 уровень
22 октября, 05:35
Предложу свое решение, ИМХО очень простое: BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); int a = Integer.parseInt(reader.readLine()); //напишите тут ваш код String ch = a%2==0? "четное ":"нечетное "; if(a>=1 && a<10) System.out.println(ch+"однозначное число"); if(a>=10 && a<100) System.out.println(ch+"двузначное число"); if(a>=100 && a<1000) System.out.println(ch+"трехзначное число");
Turn off the light 4 уровень, Нижний Новгород
19 октября, 05:15
public static void main(String[] args) throws Exception { Scanner scanner = new Scanner(System.in); int a = scanner.nextInt(); String Num = a + ""; int lengthNum = Num.length(); String x, y; if (a % 2 != 0) x = "нечетное"; else x = "четное"; switch (lengthNum) { case (1): y = "однозначное"; break; case (2): y = "двузначное"; break; case (3): y = "трехзначное"; break; default: throw new IllegalStateException("Unexpected value: " + lengthNum); } if (a >= 1 && a <= 999) System.out.println(x + " " + y + " число"); } Не выполнено последнее требование "10. Если введенное число не попадает в диапазон 1 - 999, ничего не выводить на экран", есть мысли?
Oleg 8 уровень
22 октября, 15:26
я бы предложил конкретно в этом варианте конструкцию switch положить внутрь if (a > 0 && a < 1000). Я именно так и заходил в это условие)
Michael 5 уровень, Москва
позавчера, 17:14
if (a<1||a>999) System.out.print("");
DAS 7 уровень, Москва
8 октября, 07:58
вот код моего решения (проверку прошёл, решил со второй попытки, ошибся с нулём), один вопрос - я ненормальный? или для 4 уровня всё хорошо?:)
Дмитрий 7 уровень, Санкт-Петербург
23 сентября, 14:43
Просто отставлю это тут: мы проходили типы doudle, if, else. До тернального ещё не добрался. Тем более его все хэйтят. BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); double a = Double.parseDouble(new BufferedReader (new InputStreamReader(System.in)).readLine());//в одну строчку. String x; if (a%2==0)//число делится на 2? x = "четное ";//да else //если нет, то x = "нечетное "; if (a/10 >= 10 && a/10 < 100) //42/10(4.2>10 и 4.2<100 System.out.println(x+ "трехзначное число"); else if (a/10 <10 && a/10 >=1) System.out.println(x + "двузначное число"); else if (a/10 < 1 && a/10 >= 0.1) System.out.println(x + "однозначное число"); } }
Regina Kazan Start-up Founder / Automa в Jivys
19 сентября, 20:17
Все очень просто, следите: создаем три статических публичных метода: 1. булиновский, который проверяет, что число в диапазоне от 1 до 999, включая эти цифры 2. стринговский, который возвращает слово однозначное, дв-е, тр-е, в зависимости от условий: если число больше 0 и меньше 10, то переменной (которую объявили до условий) присваиваем однозначное, иначе если тд тп - принцип понятен 3. стринговский по аналогии со вторым методом, который возвращает слова четное или нечетное, в зависмости от условий: если число процент 2 == 0, тогда четное, иначе нечетное. далее в мейне мы проверяем - вызываем метод номер 1, если да, то печатаем метод2 + пробел + метод3 + пробел + "число". все! ставьте лайк, если вам понравилось
Илья Азанов 8 уровень, Санкт-Петербург
17 сентября, 15:21
Ребята, тернарный оператор вам в помощь. По мне даже лучше boolean. Отправлю одну переменную, дальше легко догадаться, что нужно сделать (1000 - a) <= 900 ? "трехзначное" : (1000 - a) <= 990 ? "двузначное" : "однозначное";
GhostWind 6 уровень, Одесса
21 октября, 13:59
объясни пожалуйста, почему 990, я не могу понять😬😅
Nikita Minin 5 уровень
21 октября, 19:00
если вводить двузначное число a, то при вычитании из 1000 получится число менее 990. Например: a=50 .... 1000 - а = 950. 950 <= 990 а=10 .... 1000 - a = 990. 990 <= 990
GhostWind 6 уровень, Одесса
21 октября, 19:08
Спасибо , понял, принял, осознал😅
Leonid Ksenofontov 5 уровень, Москва
16 сентября, 17:58
Решил за две минуты эту задачу, булин а = число больше нуля и меньше 10 и (число делим на 2 без остатка) дальше иф а соут "четное однозначное число" для нечетного булин b = число больше нуля и меньше 10 и !(число делим на 2 без остатка) иф b соут "нечетное однозначное число" все були сначала объявил потом ифы написал. как то мне показалось, что так красивше выглядит код ) может кому то помог )) ах да, что бы не завалиться на последнем требовании, начал с условия больше нуля а закончил меньше либо равно 999.
Максим 9 уровень, Москва
16 сентября, 16:04
что б не убиться с последним условием, как я, вместо sout надо брать return вдруг кому поможет)
Исмаил Сергеев 4 уровень, Санкт-Петербург
21 октября, 15:08
не помогает