e-olymp 2. Цифры

Задача

Вычислить количество цифр целого неотрицательного числа $latex n$.

Входные данные

Неотрицательное целое число [latex]n[/latex] [latex](0<=n<=2*10^9)[/latex].

Выходные данные

Количество цифр в числе $latex n$.

Тесты

n Количество цифр
3 1
327 3
1024 4

Решение

Объявляем переменную x для подсчета цифр в числе и присваиваем ей значение 1, вводим n . Далее используем цикл while , проверяя деление числа n на 10 (так как тип числа int ). Это «отбрасывает» последнюю цифру в числе. Пока результат проверки истинный, инкриментируем x на 1.

Пример работы программы можно увидеть на ideone.

Mif 1

Постановка задачи

Даны действительные числа [latex]x, y[/latex]. Получить [latex]max(x,y)[/latex].

Входные данные:

Два действительных числа — [latex]x[/latex] и [latex]y[/latex].

Выходные данные:

Число, являющееся максимумом из двух чисел — [latex]maxOfTwo[/latex]

Тесты

Входные данные Выходные данные
1 3 4 4
2 -3 -5 -3
3 0 12 12

 

Решение:

Альтернативное решение:

 

Описание решения:

Объявляем три переменные типа  int  —  x, y, maxOfTwo . Вводим с клавиатуры значения для  x и  y . После чего с помощью условного оператора  if-else  проверяем  x>y . Если истинно, присваиваем переменной  maxOfTwo  значение переменной  x , а иначе  MaxOfTwo = y . Выводим значение  MaxOfTwo  с помощью функции  System.out.println() .

Описание альтернативного решения:

Объявляем три переменные типа  int  —  x, y, maxOfTwo . Вводим с клавиатуры значения для  x и  y . Используя тернарный оператор  ?: проверяем истинность выражения  x>y и присваиваем результат операции переменной  maxOfTwo . Выводим значение  MaxOfTwo  с помощью функции  System.out.println() .

 

 

 

 

e-olymp 22. “Зеркально простые” числа

Назовем число “зеркально простым”, если само число является простым, и простым является число, записанное теми же цифрами в обратном порядке.

Найти количество “зеркально простых” чисел на промежутке от [latex]a[/latex] до [latex]b.[/latex]

Входные данные

Два числа [latex]a[/latex] и [latex]b[/latex] [latex]( 1\le a, b \le 10000)[/latex].

Выходные данные

Вывести количество “зеркально простых” чисел на промежутке от [latex]a[/latex] до [latex]b[/latex] включительно.

Задача взята с сайта e – olymp.

Тесты

Границы промежутка     Количество “зеркально простых” чисел
1 10 4
100 200 12
1008 1230 19
3340 3950 31
9900 10000 4

Алгоритм

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

    1. Инициализируем две логические переменные, значение которых отвечает за прохождение теста на простоту самим числом и “зеркальным” соответственно.
    2. Методом последовательного перебора делителей определяем является ли данное число простым. Если данное утверждение истинно, переходим к последующим пунктам. В противном случае переходим на новый виток главного цикла.
    3. Выполняем последовательную сборку числа, записанного в обратном порядке.
    4. Проводим аналогичную проверку на простоту для “зеркального” числа.
    5. При условии, что это число также является простым, инкрементируем счетчик.

Достигнув верхней границы промежутка, выводим количество “зеркально простых” чисел.

Код программы:

Код программы

Засчитанное решение

e-olymp 29. Уровень палиндромности

Задано натуральное [latex]M[/latex]. Если число не палиндром – записываем его в обратном порядка и слагаем с заданным. Действия повторяем до тех пор, пока не получим число-палиндром. Количество выполненных операций назовем уровнем палиндромности заданного числа.

Найти уровень палиндромности заданного числа [latex]M[/latex].

Входные данные

Единственное число [latex]M (0 < M < 10000)[/latex].

Выходные данные

Единственное число – уровень палиндромности.

Задача взята с сайта e – olymp.

Тесты

  Входные данные    Выходные данные
1 0
79 6
101 0
198 5
865 2
9998 6

Алгоритм

В данной задаче для заданного числа требуется определить уровень его палиндромности – количество раз, которое придется просуммировать его с обратным ему числом до получения палиндрома.

  1. Для начала инициализируем счетчик, который хранит в себе текущее значение уровня палиндромности, и логическую переменную, значение которой ложно до тех пор пока палиндром не найден. Данное условие и будет критерием для выполнения тела основного цикла.
  2. Присвоив значения переменным в цикле, выполняем последовательный разбор введенного числа на цифры и сборку “зеркального” числа.
  3. Проверяем равенство числа и ему обратного.
  4. Выполнение условного оператора сигнализирует о том, что палиндром найден, следовательно выводим “уровень”, изменяем значение логической переменной на противоположное и выходим из цикла.
  5. В противном случае суммируем текущее число и “зеркальное”, инкрементируем счетчик.
  6. Повторяем пункты 2, 3, 5 до истинности пункта 3 и перехода к 4.

Код программы:

Код программы
Засчитанное решение