Банковские проценты Вклад в банке составляет x рублей. Ежегодно он увеличивается на p процентов,
после чего дробная часть копеек отбрасывается. Определите, через сколько лет вклад составит не менее y рублей.Входные данныеПрограмма получает на вход три натуральных числа: x, p, y (x≤2000,p≤100,y≤2000).Выходные данныеПрограмма должна вывести одно целое число — ответ на задачу.Мой код:#include using namespace std;int main() { int x, p, y; cin >> x >> p >> y; int i = 0; while (x < y) { x *= 1 + p / 100.0; x = ((int)(x * 100)) / 100; i++; } cout << i;}Решение не проходит по времениОтветы на вопрос
Ответ:
1
2
3
4
5
6
7
8
9
x = int(input())
p = int(input())
y = int(input())
i = 0
while x < y:
x *= 1 + p / 100
x = int(100 * x) / 100
i += 1
print(i)
Проблема с вашим кодом заключается в том, что вы используете цикл while для увеличения вклада до достижения необходимой суммы, и внутри цикла каждый раз выполняете операции с числами с плавающей точкой, что может привести к неэффективной работе программы и бесконечному циклу из-за погрешностей с плавающей точкой.
Вы можете решить эту задачу более эффективным способом, используя целочисленную арифметику. Вот исправленный код:
cpp#include <iostream>
using namespace std;
int main() {
int x, p, y;
cin >> x >> p >> y;
int i = 0;
while (x < y) {
x += x * p / 100;
i++;
}
cout << i;
return 0;
}
В этом коде мы используем только целые числа для вычислений, и это позволяет избежать проблем с погрешностями с плавающей точкой. Код будет работать быстро и корректно для заданных входных данных.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili
