Cho số X. Ban đầu có 100 rupee trong ngân hàng. Lãi suất hàng năm 1% tính lãi kép (chỉ lấy phần nguyên). Hãy tìm số năm tối thiểu để số dư đạt ít nhất X rupee.
Ví dụ
Với X = 520, đầu ra là 213.
Giải thuật
Mô phỏng quá trình: khởi tạo balance = 100, years = 0. Lặp khi balance < X: tính lãi = balance / 100 (phép chia nguyên), cộng lãi vào balance, tăng years. Trả về years.
Mã C++
#include <bits/stdc++.h>
using namespace std;
int solve(int n) {
int sum = 0;
int balance = 100;
while (balance < n) {
int interest = balance / 100;
sum = sum + 1;
balance = balance + interest;
}
return sum;
}
int main() {
int X = 520;
cout << solve(X) << endl;
}
Đầu vào / Đầu ra
Input: 520
Output: 213