Собранные деньги - Free Pascal
Формулировка задачи:
Папа Карло подарил Буратино 1 золотой Цехин на его первый день рождения, а экономный Буратино положил подарок в банке. Каждый следующий год папа Карло удваивал свой предыдущий подарок и прибавлял к нему столько цехинов, сколько лет исполнилось Буратино, а тот, в свою очередь продолжал составлять золотые в банке. На какой N-й день рождения в банке будет не менее S цехинов?
Объяснение: на первый день рождения Буратино подарили один золотой, на второй 2 * 1 + 2 = 4, их стало 5, а на третий 2 * 4 + 3 = 11, и их стало 16> 15.
второй и третий день получаются, а вот с первым днем проблема
program cehiny; uses crt; var s:real; n,k,r,i:byte; BEGIN write('ввести год рождения n=>'); readln(n); s:=0; for i:=1 to n do begin k:=n*2; r:=k+2; s:=k+r; s:=s+1; end; writeln(s:5:0); readln END.
Решение задачи: «Собранные деньги»
textual
Листинг программы
program cehiny; uses crt; var s,k,i,sum:integer; BEGIN write('введите количество цехинов '); readln(s); k:=1;i:=1;sum:=k; while sum<s do begin inc(i); k:=k*2+i; sum:=sum+k; end; writeln('не менее ',s,' цехинов в банке станет на ',i,' день рождения'); readln END.
Объяснение кода листинга программы
- Объявление переменных: s, k, i, sum (строка 5)
- Ввод количества цехинов (строка 7)
- Инициализация переменных k=1, i=1, sum=1 (строка 8)
- Запуск цикла while, который выполняется до тех пор, пока сумма цехинов (sum) меньше введенного количества (s) (строка 9)
- Внутри цикла увеличение i на 1 (строка 10)
- Увеличение k на 2*i и i на 1 (строка 11)
- Добавление k к сумме (sum) (строка 12)
- Вывод сообщения о том, что не менее s цехинов в банке станет на i день рождения (строка 13)
- Чтение из файла (строка 14)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д