Задача
Разложить заданное трицифровое число на цифры.
Входные данные
В единственной строке задано целое трицифровое число.
Выходные данные
Вывести каждую цифру в новой строке. Порядок вывода приведён в примере.
Код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include <iostream> using namespace std; int main() { int a=0; cin>>a; if (a<0) { //проверяем, является ли число отрицательным a=a*(-1); //если да, то умножаем на (-1) } cout<<a/100<<"\n"; //формула для первой цифры cout<<(a/10)%10<<"\n"; //формула для второй цифры cout<<a%10; //формула для третьей цифры return 0; } |
Тесты
№ | Входные данные | Выходные данные |
1 | 123 | 1
2 3 |
2 | 98 | 0
9 8 |
3 | -456 | 4
5 6 |
4 | -1 | 0
0 1 |
5 | -78 | 0
7 8 |
Решение
Для начала задаем переменную(a) в которой будет трехзначное число, которое мы вводим с клавиатуры. Затем проверяем: отрицательное или положительное это число. Если число отрицательное, то домножаем его на (-1). Если число останется отрицательным, то все выходные цыфры тоже будут отрицательными, а это противоречит условию. Итак мы имеем трехзначное положительное число. Для того чтобы получить первую цифру этого числа воспользуемся простой формулой [latex]a/100[/latex], вторую цифру по формуле — [latex](a/10)%10[/latex], и третью [latex]a%10[/latex]. После отображения каждой цифры воспользуемся командой \n, для того чтобы каждая цифра была на отдельной строке.
Задача взята с сайта.
Есть замечания.
— Ни «e-olymp 935», ни «Разложение трицифрового числа» ключевыми словами не являются. Вам придется читать свой текст и искать в нём важные слова.
— Судя по времени публикации, Вы «позаимствовали» здесь идею борьбы с отрицательными числами. Посмотрите мои комментарии к ней.
Спасибо за замечание. Первый пункт я исправил. По поводу второго пункта – я ничего не заимствовал, просто без проверки задача заходит на e-olymp только на 50%.
Там успела измениться работа. Уточню.
Нет смысла писать a*(-1). Достаточно просто -a
Зачтено. Действительно в Вашей задаче допустимы отрицательные числа.