输入:
一行包含三个整数R,M,Y,相邻两个整数之间用单个空格隔开。
输出:
一个整数,即约翰最终拥有多少钱(整数部分)。
样例输入:
5 5000 4
复制
样例输出:
6077
复制
注释:
在样例中,
第一年后: 1.05 * 5000 = 5250
第二年后: 1.05 * 5250 = 5512.5
第三年后: 1.05 * 5512.50 = 5788.125
第四年后: 1.05 * 5788.125 = 6077.53125
6077.53125的整数部分为6077。
Source: USACO 2004 November
用这个代码也能算出答案 但是系统显示wrong answer 哪里错了
根据题目的要求,是不是因为M也需要是整数,然后把输入的R计算成利率需要除以100然后转换为double类型以便后面参与收益计算,然后每年增长的倍数是(1+利率), 1代表本金,利率即收益率,修改如下:
#include <stdio.h>
int main(void){
int R, Y ,M;
scanf("%d %d %d",&R,&M,&Y);
double rate = (double)R/100; //根据题目提示,把输入的R计算为基础复合年利率
double result=M; //把收益初始化为本金
// printf("rate = %lf\n",rate);
for(int i=Y;i>0;i--){
result*=(1+rate); //投资收益等于本金乘以收益率
//printf("result=%lf\n",result);
}
printf("%d",(int)result);
return 0;
}
你直接把利率写死成1.05了
都说了是三个整数啊,为啥M你擅自定义为double呢