### 自查思路
1. 检查输入数据的处理是否正确。
2. 检查判断条件 `p <= d * r` 是否正确。
3. 确认公式计算和输出格式是否正确。
### 伪代码
1. 读取输入的贷款金额、每月还款额和月利率。
2. 判断是否可以还清贷款:
- 如果每月还款额小于贷款金额乘以月利率,则输出“God”。
- 否则,计算还清贷款所需的月份数:
- 使用公式 m = log(p / (p - d * r)) / log(1 + r)
3. 输出还清贷款所需的月份数,保留1位小数。
### C++代码
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main() {
double d, p, r;
// 读取输入的贷款金额、每月还款额和月利率
cin >> d >> p >> r;
// 判断是否可以还清贷款
if (p == 0 && d == 0) {
cout << fixed << setprecision(1) << 0.0 << endl;
} else if (p <= d * r) {
cout << "God" << endl;
} else {
// 计算还清贷款所需的月份数
double m = log(p / (p - d * r)) / log(1 + r);
// 输出还清贷款所需的月份数,保留1位小数
cout << fixed << setprecision(1) << m << endl;
}
return 0;
}