к годин



Автор Niki™ задал вопрос в разделе Другие языки и технологии

Составить программу, печатающую для целого числа k от 1 до 99 фразу: "мне k лет". При этом учитывать, что при некоторых и получил лучший ответ

Ответ от Андрей Панарин[гуру]
Это хорошая задачка. Ее решили разработчики сети "ВКонтакте", за что им большое спасибо.
Давай подумаем, когда мы пишем "год", "года" и "лет".
1 год
2 года
3 года
4 года
5 лет
..
9 лет
10 лет
11.. лет?
12 лет!
..
19 лет..
20 лет
21 год. О!
22 года
..
31 год
32 года
33 года
34 года
35 лет
Видишь закономерность?
Если число содержит ровно один десяток (11, 112, 213, 514 - не важно), тогда пишем "лет".
Иначе выбор варианта зависит от последней цифры:
1 - год
2-4 - года
другая цифра - лет
Чтобы вытащить из числа одну цифру, нужно:
1) избавиться от цифр справа от нужной цифры - поделить число нацело. Например, x div 10 отбрасывает последнюю цифру, а x div 100 отбрасывает две цифры;
2) полученное число поделить по модулю на 10 и получить остаток. Например: (x div 10) mod 10.
К примеру, возраст x = 842.
Последняя цифра: x mod 10 = 2
Предпоследняя цифра: (x div 10) mod 10 = 84 div 10 = 4

Ответ от Константин Дурбажев[новичек]
program p1;
uses CRT;
label m1,m2,m3;
var a:integer;
begin
Writeln('input number');
readln(a)
if (a=1) or (a=21) or (a=31) or (a=41) or (a=51) or (a=61) or (a=71) or (a=81) or (a=91) then go to m1;
if (2<=a<=4) or (22<=a<=24) or (32<=a<=34) or (42<=a<=44) or (52<=a<=54) or (62<=a<=64) or (72<=a<=74) or (82<=a<=84) or (92<=a<=94) then go to m2;
if (5<=a<=19) or (25<=a<=30) or (35<=a<=40) or (45<=a<=50) or (55<=a<=60) or (65<=a<=70) or (75<=a<=80)(85<=a<=90) or (95<=a<=99) then go to m3;
m1:writeln('мне',a,'год');
m2:writeln('мне',a,'года');
m3:writeln('мне',a,'лет');
readln;
end;

Ответ от Cublen[гуру]
примени эту программу для себя
Program lab6_2;
Uses crt;
Var
k: integer;
begin
clrscr;
write('Ввести количество книг --> '); readln(k);
case k mod 100 of
11..20:writeln(k,' книг');
else case k mod 10 of
1:writeln(k,'книга');
2..4:writeln(k,'книги');
else writeln(k,'книг');
end;
end;
end.

Ответ от Ёержант[гуру]
ссылка

Ответ от Президент интернета[гуру]
есть процедура по переводу числового значения в строковое представление числа. например num2word

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Составить программу, печатающую для целого числа k от 1 до 99 фразу: "мне k лет". При этом учитывать, что при некоторых
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*