80s498 2022-08-12 21:15 采纳率: 93.5%
浏览 80
已结题

到底哪里出了问题啊。-

img


银行利息
描述:
农夫约翰在去年赚了一大笔钱!他想要把这些钱用于投资,并对自己能得到多少收益感到好奇。已知投资的复合年利率为R(0到20之间的整数)。约翰现有总值为M的钱(100到1,000,000之间的整数)。他清楚地知道自己要投资Y年(范围0到400)。请帮助他计算最终他会有多少钱,并输出它的整数部分。数据保证输出结果在32位有符号整数范围内。

输入:
一行包含三个整数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 哪里错了

  • 写回答

3条回答 默认 最新

  • a5156520 2022-08-12 21:32
    关注

    根据题目的要求,是不是因为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;
    } 
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月14日
  • 已采纳回答 8月12日
  • 创建了问题 8月12日

悬赏问题

  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c