Помогите решить задачу на паскале. Количество граждан некоторого города увеличивается ежегодно на В%. Через сколько лет население города возрастет в m раз, если вначале было А человек.
Ответы
Ответ дал:
0
//Pascal ABC.NET 3.1 сборка 1256
Var
b,a,m,ar:real;
i:integer;
begin
readln(b,m,a);
i:=0;
ar:=a*m;
while ar>a do
begin
inc(i);
a:=a*(b/100+1);
end;
writeln(i);
end.
Пример ввода:
33
2
100
Пример вывода:
3
Var
b,a,m,ar:real;
i:integer;
begin
readln(b,m,a);
i:=0;
ar:=a*m;
while ar>a do
begin
inc(i);
a:=a*(b/100+1);
end;
writeln(i);
end.
Пример ввода:
33
2
100
Пример вывода:
3
Ответ дал:
0
Для таких задач используется формула, называемая "сложный процент"
![displaystyle x=Aleft(1+ frac{B}{100}right)^n displaystyle x=Aleft(1+ frac{B}{100}right)^n](https://tex.z-dn.net/?f=displaystyle+x%3DAleft%281%2B+frac%7BB%7D%7B100%7Dright%29%5En)
Здесь А - начальное значение, В - ежегодный процент, n - количество лет, х - результирующее значение.
По условию x=A×m, откуда можно найти n, затем округлив его до ближайшего большего целого.
![displaystyle Am=Aleft(1+ frac{B}{100}right)^n; quad m=left(1+ frac{B}{100}right)^n; \ \ ln(m)=nlnleft(1+ frac{B}{100}right) to n= frac{ln(m)}{lnleft(1+ displaystyle frac{B}{100}right)} displaystyle Am=Aleft(1+ frac{B}{100}right)^n; quad m=left(1+ frac{B}{100}right)^n; \ \ ln(m)=nlnleft(1+ frac{B}{100}right) to n= frac{ln(m)}{lnleft(1+ displaystyle frac{B}{100}right)}](https://tex.z-dn.net/?f=displaystyle+Am%3DAleft%281%2B+frac%7BB%7D%7B100%7Dright%29%5En%3B+quad+m%3Dleft%281%2B+frac%7BB%7D%7B100%7Dright%29%5En%3B+%5C++%5C+ln%28m%29%3Dnlnleft%281%2B+frac%7BB%7D%7B100%7Dright%29+to+n%3D+frac%7Bln%28m%29%7D%7Blnleft%281%2B+displaystyle+frac%7BB%7D%7B100%7Dright%29%7D+)
Получается, что значение А в условии является лишним.
// PascalABC.NET 3.1, сборка 1256 от 21.06.2016
begin
var m:=ReadReal('m=');
var B:=ReadReal('B%=');
Writeln('Кол-во лет равно ',Ceil(Ln(m)/Ln(1+B/100)))
end.
Тестовые решения
m= 2
B%= 33
Кол-во лет равно 3
m= 3.5
B%= 18
Кол-во лет равно 8
Здесь А - начальное значение, В - ежегодный процент, n - количество лет, х - результирующее значение.
По условию x=A×m, откуда можно найти n, затем округлив его до ближайшего большего целого.
Получается, что значение А в условии является лишним.
// PascalABC.NET 3.1, сборка 1256 от 21.06.2016
begin
var m:=ReadReal('m=');
var B:=ReadReal('B%=');
Writeln('Кол-во лет равно ',Ceil(Ln(m)/Ln(1+B/100)))
end.
Тестовые решения
m= 2
B%= 33
Кол-во лет равно 3
m= 3.5
B%= 18
Кол-во лет равно 8
Вас заинтересует
1 год назад
6 лет назад
6 лет назад
8 лет назад
9 лет назад