ECNU 3081 购房还款
作者:互联网
ECNU 3081 购房还款
链接
https://acm.ecnu.edu.cn/problem/3081
题目
单点时限: 2.0 sec
内存限制: 256 MB
购房者从银行贷了一笔款 d,已知每月还款额为 p,月利率为 r。请编写程序计算需要几个月才能还清贷款。例如:d=300000,p=6000,r=1%, 则需 70 个月还清。
输入三个整数 d,p 和 r,三个整数之间用空格分隔。上述例子的输入为:300000 6000 1
在一行中输出需要还清的月数 (四舍五入到整数)。
Hint:还清月数 m 的计算公式如下:
公式中的 log(x) 表示 log10(x),以 10 为底的对数。C 语言的标准库函数中有计算以 10 为底的对数的函数 log10()。
Note:
(1)、调用库函数 log10(),在程序开头加上一行 : #include < 对应头文件 >
(2)、 库函数 log10() 的用法请参考教材 P251。
输入格式
在一行中输入用空格分隔的三个整数。
输出格式
在一行中输出需要还清的月数 (四舍五入到整数)。注意:需要换行。
样例
input
300000 6000 1
output
70
思路
直接对于函数进行处理就行了,需要注意的是,这里的r是百分比,应该乘0.01,此外,最后结果要四舍五入,这里采用round即可。
代码
public static void fun() {
Scanner sc = new Scanner(System.in);
double d = sc.nextDouble();
double p = sc.nextDouble();
double r = sc.nextDouble();
double ans = Math.log10(p / (p - d * r * 0.01)) / Math.log10(1 + r * 0.01);
System.out.println(Math.round(ans));
}
标签:3081,double,整数,ECNU,还款,sc,还清,log10,库函数 来源: https://www.cnblogs.com/blogxjc/p/14289741.html