Просмотр содержимого документа
«Нестандартные задачи»
Нестандартные задачи
- Хлестаков
- Татьяна Ларина
- Богатый Дядюшка
- Царевна-лягушка
- От острова Буяна…
Ивана Александровича Хлестакова пригласили управлять департаментом.
В первый день ему прислали 1000 курьеров, а в каждый последующий в 2 раза больше, чем в предыдущий.
Иван Александрович согласился тогда, когда к нему прибыло сразу не менее 30 000 курьеров.
На какой день Хлестаков согласился управлять департаментом? (Он не умеет ни делить, ни умножать)
program Xlestakov;
var Day,KolDay:integer;
begin
Day:=1;
KolDay:=1000 ;
while KolDay
begin
Day:=Day+1;
KolDay:=KolDay+KolDay
end;
writeln ('Day=',Day )
End .
Ответ:
на 6 день
Проверка:
- Day:=1;KolDay:=1000 ;
- Day:= 2 ;KolDay:= 2 000 ;
- Day:= 3 ;KolDay:= 4 000 ;
- Day:= 4 ;KolDay:= 8 000 ;
- Day:= 5 ;KolDay:=1 6 000 ;
- Day:= 6 ;KolDay:= 32 000 ;
Татьяна Ларина, читая очередной французский роман, подсчитала сумму номеров прочитанных страниц. Обозначим эту сумму Q .
Определить номер последней прочитанной страницы.
program Larina;
var n, s, q: integer;
begin
write(‘q=' ) ;
readln(q);
n:=1;
s:=1 ;
repeat
n:=n+1;
s:=s+n
until s=q;
writeln (‘n=',n )
End .
Тест:
Ввод: Q=10
(S=1+2+3+4)
Вывод: N =4
N – номер страницы;
S – сумма номеров очередных, прочитанных страниц.
100; writeln (‘d=',d ) end . Тест: Ввод: n=3 (s=1+4+11) Вывод: S=16 d – номер дня рождения n – конкретный день рождения sp – сумма подарка в очередной день рождения s – общая сумма денег, подаренных к N -ому дню рождения Ответ: к 6 дню рождения Проверка: " width="640"
Мой богатый дядюшка подарил мне один доллар в мой первый день рождения. В каждый следующий день рождения он удваивал свой подарок и прибавлял к нему столько долларов, сколько лет мне исполнилось.
Подсчитать общую сумму денег, подаренных к N -ому дню рождения и указать, к какому дню рождения сумма подарка превысит 100 $ .
program Podarok;
var d, s, n: integer;
begin
write(‘n=' ) ;
readln(n);
sp:=0 ; s:=0;
for d:=1 to n do
begin
sp:=2*sp+d;
s:=s+sp
end;
writeln (‘s=',s ) ;
d:= 0 ; sp:= 0;
repeat
d:=d+1;
sp:=2*sp+d;
until sp100;
writeln (‘d=',d )
end .
Тест:
Ввод: n=3
(s=1+4+11)
Вывод:
S=16
d – номер дня рождения
n – конкретный день рождения
sp – сумма подарка в очередной день рождения
s – общая сумма денег, подаренных к N -ому дню рождения
Ответ:
к 6 дню рождения
Проверка:
100 " width="640"
- n=1 s=1
- n=2 s=1*2 + 2=4
- n= 3 s=4*2+3=11
- n= 4 s=11*2+4=26
- n= 5 s=26*2+5=57
- n= 6 s=57*2+6100
100; writeln (‘d=',d-1 ) end . Ответ: Через 4 дня Проверка: d:=1; sd:=12 ; s:=12; d:= 2 ; sd:= 16.4; s:= 28.4 ; d:= 3 ; sd:= 21.68; s:= 50.8 ; d:= 4 ; sd:=2 8; s:= 78.8 ; d:= 5 ; sd:= 35.6; s:= 114.4 ; d – номер дня sd – сумма комаров, съеденных в очередной день s – общая сумма съеденных комаров. " width="640"
Царевна-лягушка съедает ежедневно на 20% комаров больше, чем в предыдущий день, и ещё два комара.
Через сколько дней количество съеденных комаров превысит 100, если в первый день было съедено 12 комаров.
program Lygushka;
var d: integer;
sd, s: real;
begin
d:=1; sd:=12 ;
s:=12;
repeat
d:=d+1;
sd:=1.2*sd+2;
s:=s+sd
until s100;
writeln (‘d=',d-1 )
end .
Ответ:
Через 4 дня
Проверка:
d:=1; sd:=12 ; s:=12;
d:= 2 ; sd:= 16.4; s:= 28.4 ;
d:= 3 ; sd:= 21.68; s:= 50.8 ;
d:= 4 ; sd:=2 8; s:= 78.8 ;
d:= 5 ; sd:= 35.6; s:= 114.4 ;
d – номер дня
sd – сумма комаров, съеденных в очередной день
s – общая сумма съеденных комаров.
s2 then max:=s1 else max:=s2; if maxs3 then max:=max else max:=s3; write(‘max=‘,max ) ; end. Тест: Ввод: a=2;3;1;4;2;3;1;1;1;5 b=1;4;2;3; 1;1;2;3;1;4 d=4;2;3;1;4;2;3;1;1;4 (s1 = 23;s2=22;s3=25); Вывод: max=3 " width="640"
От острова Буяна до царства славного Салтана месяц пути. Капитан корабля записывает в вахтенный журнал
количество миль, пройденных за день. Определить, в какую десятидневку пройден больший путь.
program buyn;
var a,b,d,s1,s2,s3,max: real;
begin
s1:=0;
for i:=1 to 10 do
begin
write(‘a=' ) ;
readln(a);
s1:=s1+a
end;
s2:=0;
for i:=1 to 10 do
begin
write(‘b=' ) ;
readln(b);
s2:=s2+b
end;
s3:=0;
for i:=1 to 10 do
begin
write(‘d=' ) ;
readln(d);
s3:=s3+d
end;
if s1s2
then max:=s1
else max:=s2;
if maxs3
then max:=max
else max:=s3;
write(‘max=‘,max ) ;
end.
Тест:
Ввод: a=2;3;1;4;2;3;1;1;1;5
b=1;4;2;3; 1;1;2;3;1;4
d=4;2;3;1;4;2;3;1;1;4
(s1 = 23;s2=22;s3=25); Вывод: max=3