Написать программу, которая выводит текстовое описание числа. на вход числа от 100 до 399. на выходе число текстом. например, на вход 217 вывод: «двести семнадцать»
Program rtr1;Uses crt;var a,s,d,e:integer; ss,dd,ee:string;beginclrscr;Writeln('Введите число от 100 до 399');readln(a);s:=a div 100;e:=a mod 100 mod 10;d:=a div 10 mod 10;case s of1: ss:='сто';2: ss:='двести';3: ss:='триста';end;case d of2: dd:='двадцать';3: dd:='тридцать';4: dd:='сорок';5: dd:='пятьдесят';6: dd:='шестьдесят';7: dd:='семьдесят';8: dd:='восемьдесят';9: dd:='девяносто';end;case e of1: ee:='один';2: ee:='два';3: ee:='три';4: ee:='четыре';5: ee:='пять';6: ee:='шесть';7: ee:='семь';8: ee:='восемь';9: ee:='девять';end;if d=1 then begin case e of 1: dd:='одинадцать'; 2: dd:='двенадцать'; 3: dd:='тринадцать'; 4: dd:='четырнадцать'; 5: dd:='пятнадцать'; 6: dd:='шестнадцать'; 7: dd:='семнадцать'; 8: dd:='восемнадцать'; 9: dd:='девятнадцать'; end;write(ss,' ',dd);end elsewrite(ss,' ',dd,' ',ee);
end.
zverevahelen
04.09.2021
1. Отметим, что оба получающихся числа независимы друг от друга, поскольку первое строится из нечетных цифр исходного пятизначного числа, а правое - из четных. 2. Первое число - сумма трех цифр, следовательно его величина может быть в пределах от 0+0+0=0 до 9+9+9=27. Второе число - сумма двух цифр, поэтому его величина может быть в пределах от 0+0=0 до 9+9=18. На этом основании бракуем все числа, у которых вторая цифра больше 27 и/или первая цифра больше 18. Таким образом вычеркиваем 1030, 2019, 1920, 3010. 3. 40 - не подходит (4,0), нарушен порядок неубывания, 130 - не подходит (13,0), 1320 - (13,20) - подходит, нарушен порядок неубывания, 2013 - не подходит (20,13), нарушен порядок неубывания, 213 - подходит (2,13). ответ: 2 числа.
grenysherg2873
04.09.2021
Для начала,надо посмотреть условие задачи,у нас в задаче условие такого: не должно быть чисел больше 27 и 18(т.к. Смотри первый пункт задачи. И числа должны быть записаны по неубыванию,то есть либо по возрастанию,либо должны быть равны друг другу(например,как 1616,1414,2424 и тд.). Следующий шаг будет,рассмотрим числа,которые нам предложены 1) первое число это 40. Делим число 40 на два числа это 4 и 0. 4 и 0 мы можем использовать по условию задачи по первому пункту,но ко второму пункту он не подходит,потому что записан в порядке убывания,а как мы уже поняли по условию,числа должны быть записаны в порядке не убывания(2 пункт задачи) 2) смотрим второе число 1030 ,делим его на два числа 10 и 30, это число нам не подходит,потому что в нём присутствует число 30,а число 30 нам нельзя использовать по условию задачи (1 пункт) 3) смотрим на 3 число 130,разделили его на два числа( мы его можем разделить двумя первый это 1 и 30,в этом случае он нам не подойдёт, второй и 0) в этом случае он нам подойдёт по первому пункту,но нужно проверит второй пункт число 13 и 0 записаны по убыванию,по второму пункту это число не подходит так как в условии говорится что числа должны быть записаны непоубыванию(а если не по убыванию ,то следовательно это или по возрастанию либо должны быть равны друг другу(например 1616,1515,1414 и тд.) И так надо брать каждое число и про гонять его по условию задания,и потом посчитать количество чисел которые подошли по условию это и будет ответ Если что-то не понятно уточню
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Написать программу, которая выводит текстовое описание числа. на вход числа от 100 до 399. на выходе число текстом. например, на вход 217 вывод: «двести семнадцать»
end.