「已注销」 2022-03-21 21:24 采纳率: 87.5%
浏览 41
已结题

c语言解决数学问题简单运用

国王将金币作为工资,发放给忠诚的骑士。
第1天,骑士收到1枚金币,1
之后两天,每天收到2枚金币,1 2 2
之后3天每天收到3枚金币…….。1 2 2 3 3 3
这种工资发放模式一直延续。
求给定天数,计算一个骑士获得的金币。
输入发金币的天数
输出获得的金币总数
输入
2
输出
3

  • 写回答

1条回答 默认 最新

  • 丨封尘绝念斩丨 2022-03-21 22:00
    关注
    
    #include<iostream>
    using namespace std;
    int main()
    {
        int n;
        cin >> n;
        int h=0;//记录前一个i
        int l = 1 , i , sum = 0;
        for( i=1;i<=n;i+=l)//这个过程请读者带数运行以下就理解了
        {
            sum+=l*(i-h);//总的金币相加
            l++;//下一次给的金币数
            h=i;//记录前一个i,(i-h)就课以得到发工资都相同得天数
        }
        if(i!=n)//如果不相等就说明sum小于真实值,就是不满足下一个同样工资得天数!=(i-h)个;
        {
            sum+=(n-h)*l;//将剩余得加起来;
        }
        cout<<sum;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月29日
  • 已采纳回答 3月21日
  • 创建了问题 3月21日