Задача про Диету Деда Мороза C++

160
01 апреля 2019, 06:20

Задача про Диету Деда Мороза, подробнее на картинке. Самая простая задача из тех что были, все решил эту не удается. Помогите с решением пожалуйста. (C++17)

#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
int main() {
    ifstream inp;
    ofstream otp;
    inp.open("input.txt");
    otp.open("output.txt");
    double K = 0, P = 0, Q = 0, N = 0, cpd = 0, ans = 0;
    inp >> K >> P >> Q >> N;
    cpd = (Q - P) / (K - 1);
    otp << fixed << setprecision(5) << (cpd * N);
    return 1;
}

https://codeshare.io/5wKVnD

Answer 1

Это задача на формулу сложного процента. Вес Деда Мороза в день i (при нумерации дней с нуля) равен

W = B * (1 + k)^i

где B - начальный вес, а k - коэффициент пропорциональности, а ^ - операция возведения в степень.

Чтобы решить задачу, вам нужно использовать веса Деда Мороза в первый день и в последний день, чтобы найти неизвестный коэффициент пропорциональности k

k = (E/B)^(1/N) - 1

где E - конечный вес Деда Мороза, а N - количество дней в диете. При этом не забывайте, что в задаче нумерация дней идет с 1, то есть N равно количеству дней из файла минус 1 (N = K - 1).

Получив коэффициент k вы по первой формуле сможете найти W в любой день диеты.

Для приведенного примера (при условии, что входные данные идут в порядке "конечный вес" - "начальный вес"), значение k будет равно -0.5.

Разумеется, в формулах можно сделать замену переменной 1 + k на m и избавиться от этого прибавления/вычитания 1. Но я хотел сохранить соответствие классическому написанию формулы сложного процента.

READ ALSO
C++ парсинг тегов в std::string

C++ парсинг тегов в std::string

Есть std::string например:

146
не активен QMenuBar [закрыт]

не активен QMenuBar [закрыт]

вот тут лежит мой проект (в src лежат исходники, а в mainProject файл notepad6d11 это собранная версия), проблема: верхняя панель (там где файл поле) не нажимается,...

140
Ошибки с массивом вещественных чисел

Ошибки с массивом вещественных чисел

Выполнял лабораторную работу:

153