【算法竞赛入门练习题】已知一个数学方程使用 循环 去反解该方程

题目链接:

解题思路:

  • 此类题关键的一点是要想到使用 for 循环

  • 年利率 =  月利率 * 12

  • 其中 (y+1000)/(1+n)要在 for 循环中执行 5 次

  • 题目中的方程:

【x * (1+n) - 1000】* (1+n) - 1000 ........ = 0

所以在 for 循环执行体中 y 的值要随着每一次的循环而更新

参考代码:

#include<bits/stdc++.h> 

using namespace std;

int main( )
{
   
    float sum = 0;//方程的右值,即 y

    float every_year = 0.00553 * 12;//求出年利率

    for(int i = 1;i <= 5;i++)
    {
       sum = (sum + 1000.0)/(1+every_year);
    }

    printf("%.2f",sum);

    return 0;
}

变式题目:

题目链接:

 

解题思路:

注意此题是到了第 10 天只剩下一个,

而不是第 10 天过完剩下一个

所以应该循环 9 次,而不是循环 10 次

参考代码:

#include<bits/stdc++.h> 

using namespace std;

int main( )
{
    int y = 1;//题目方程的右值
    int x = 0;

    for(int i = 1;i <= 10-1;i++)
    {
        x = (y+1)*2;
        y = x; //更新 y 的值
    }

    cout << x << endl;

    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值