首页 > 试题广场 >

小美种果树

[编程题]小美种果树
  • 热度指数:1307 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
小美在手机上种果树,只要成熟了就可以领到免费的水果了。

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

小红想知道,最少需要多少天可以领到免费的水果。

输入描述:
一行三个整数 x,y,z,分别表示浇水的成长值,施肥的成长值,果树成熟的成长值。
1 \leq x, y, z \leq 10^9


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

示例1

输入

1 2 10

输出

6

说明

第一天施肥浇水,成长值为 3。
第二天浇水,成长值为 3 + 1 = 4。
第三天浇水,成长值为 4 + 1 = 5。
第四天施肥浇水,成长值为 5 + 3 = 8。
第五天浇水,成长值为 8 + 1 = 9。
第六天浇水,成长值为 9 + 1 = 10。
果树成熟了,可以领到免费水果了!

x, y, z = map(int, input().split())
l = 3 * x + y
res = z // l * 3
m = z % l
if m == 0:
    print(res)
elif 0 < m <= x + y:
    print(res + 1)
elif x + y < m <= 2 * x + y:
    print(res + 2)
else:
    print(res + 3)
发表于 2023-09-12 23:49:55 回复(0)
x, y, z = map(int, input().split())
s = 0
i = 0
last = 3
while s<z:
    if last==3:
        s+=(x+y)
        last= 0
    else:
        s+=x
    i+=1
    last+=1
print(i)
发表于 2025-03-31 20:10:32 回复(0)
import java.util.*;
import java.io.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        String[] str = bf.readLine().split(" ");
        int x = Integer.parseInt(str[0]);
        int y = Integer.parseInt(str[1]);
        int z = Integer.parseInt(str[2]);

        int maxFeiCnt = z/(x+y)+1;
        int grow=0;
        int step=0;
        while(true){
            grow+=(x+y);
            step++;
            if(grow>=z){break;}
            grow+=x;
            step++;
            if(grow>=z){break;}
            grow+=x;
            step++;
            if(grow>=z){break;}
        }
        System.out.println(step);
        
    }
}

发表于 2024-09-08 14:49:24 回复(0)
ins=[]
while True:
     try:
         ins.append(list(input().split()))
     except:
        break

x=int(ins[0][0])
y=int(ins[0][1])
z=int(ins[0][2])

sumv,t=0,0
while sumv < z:
     sumv = (t+1)*x + (t//3+1)*y
     t += 1
print (t)
发表于 2024-08-31 13:08:38 回复(0)
//其他题目没看懂, 这个看懂了, java代码实现
public class Test01 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int a = in.nextInt();
        int b = in.nextInt();
        int cShu = in.nextInt();
        int temp = 0;

        for (int i = 1; i < cShu; i++) {
            temp += a;
            if (i % 3 == 1) {
                temp += b;
            }
            if (temp >= cShu) {
                System.out.println(i);
                break;
            }
        }
    }
}


发表于 2024-01-11 23:43:40 回复(0)
#include <iostream>
//大一孩子都能看懂的
using namespace std;
 
int main() {
    long long x, y, z;
    cin >> x >> y >> z;
    for (int i = 0; i < 1000000000; i++)
    {
        z = z - x;
        if (i % 3 == 0)
            z = z - y;
        if (z <= 0)
        {
            cout << i + 1; break;
        }
    }
}

发表于 2023-10-30 00:08:55 回复(0)
#include <bits/stdc++.h>
using namespace std;
#define IO ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
typedef long long ll;
const long long mod=1e9+7;
long long x,y,z;
bool check(long long tian)
{
    long long sum=tian*x+((tian+2)/3)*y;
    //cout<<tian<< " "<< sum<<"\n";
    return sum>=z;
}
void solve()
{
    cin>>x>>y>>z;
    long long l=1,r=z,ans=-1;
    while(l<=r)
    {
        long long mid=(l+r+1)/2;
        if(check(mid))
        {
            r=mid-1;
            ans=mid;
        }else 
        {
            l=mid+1;
        }
    }
    cout<<ans;
}
int main()
{
    IO;
    solve();
    return 0;
}
发表于 2023-10-16 17:05:58 回复(0)
def solve(x, y, z):
    d3 = x*3+y
    n3 = z//d3
    z %= d3
    res = 3*n3
    if z == 0:
        return res
    if z <= x+y:
        return res + 1
    if z <= 2*x+y:
        return res + 2
    return res + 3


x, y, z = map(int, input().split())
print(solve(x, y, z))
发表于 2023-08-29 22:05:05 回复(0)