Другие языки программирования и технологии

Я начинаю в С++ учить циклы И нашел задачу но не знаю как решить помогите

в деякоми году (назовем его условно первым) на участке в 100 гектар средняя урожайность ячменя составила 20 центнеров с гектара. После этого каждый год площадь участка увеличивалась на 5%, а средняя урожайность на 2%. Определить урожайность за второй, третий, ..восьмой год
Вариант 1:
Увеличение относительно начального значения, банальная арифметическая прогрессия:

for (int i = 0; i < 8; ++i) {
cout << i + 1 << ' ' << 100 * 20 * (1 + i * 0.05) * (1 + i * 0.02) << endl;
}

Вариант 2:
Увеличение относительно текущего значения, банальная геометрическая прогрессия

double val = 100 * 20;
for (int i = 0; i < 8; ++i) {
cout << i + 1 << ' ' << val << endl;
val *= 1.05 * 1.02;
}
ЭП
Эдгар По
83 219
Лучший ответ
Не про циклы... Что нужно определить-то? Урожайность или урожай?!

Заодно, как представляете себе "увеличилась на 5%"?
Shamurat Shukurlayev
Shamurat Shukurlayev
61 159
Володя Огоньков такая задача что увеличилась на 5%, а определить урожайность
странная задача. Урожайность на одном и том же поле обычно из года в год падает при засеве той же или родственной культуры.
#include <iostream>
#include <cmath>

int main(){
const double A = 100;
const double q = 20;

for(int i = 1; i < 8; i++){
std::cout << i + 1 << " год: " << std::endl
<< "Урожай: " << (A * pow(1.05, i)) * (q * pow(1.02, i)) << " цт" << std::endl
<< "Площадь: " << A * pow(1.05, i) << " га" << std::endl
<< "Урожайность: " << q * pow(1.02, i) << " цт/га" << std::endl
<< std::endl;
}

return 0;
}