小美种果树C++实现

题目描述:

小美在手机上种果树,只要成熟了就可以领到免费的水果了。

小美每天可以给果树浇水,果树的成长值加 x。同时也可以给果树施肥,两次施肥至少需要间隔 2 天,果树的成长值加 y。果树成长值达到 z 就成熟了。

小红想知道,最少需要多少天可以领到免费的水果。 (小美种果树关小红什么事???)

时间限制:C/C++ 1秒,其他语言2秒

空间限制:C/C++ 256M,其他语言512M

输入描述:

一行三个整数 x, y, z, 分别表示浇水的成长值,施肥的成长值,果树成熟的成长值。

1\leqslant x, y, z\leqslant 10^{9}

输出描述:

一行一个整数,表示最少需要多少天可以领到免费的水果。

示例1:

输入例子:

1 2 10

输出例子:

6

例子说明:

第一天施肥浇水,成长值为 3。

第二天浇水,成长值为 3 + 1 = 4。

第三天浇水,成长值为 4 + 1 = 5。

第四天施肥浇水,成长值为 5 + 3 = 8。

第五天浇水,成长值为 8 + 1 = 9。

第六天浇水,成长值为 9 + 1 = 10。

果树成熟了,可以领到免费水果了!

解题思路:

暴力破解~~~, 定义一个sum表示成长值,根据给出的例子可以看出,第一天浇水和施肥,然后往后两天是浇水,然后后一天再施肥和浇水。循环往复,一直到sum >= z,这种方法是使果树成长最快的。

C++实现代码:

#include <iostream>
using namespace std;

int main() {
    int x, y, z;
    cin >> x >> y >> z;

    int sum = x + y;
    int day = 1;
    

    while (sum < z)
    {
        for (int i = 0; i < 2; i++)
        {
            if (sum >= z)
            {
                break;
            }
            else 
            {
                sum = sum + x;
                day++;
            }
        }

        if (sum >= z)
        {
            break;
        }
        else
        {
            sum = sum + x + y;
            day++;
        }
    }

    cout<<day;
    
}
// 64 位输出请用 printf("%lld")

其他好的方法请在评论区留言~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值