1 条题解

  • 0
    @ 2024-4-28 14:40:58

    【解题思路】

    在 n 天里,每天做的题是前两天之和(前两天除外),当某天的做题量超过了 m,那么以后的日子将不会再做题。

    我们使用ans变量来记录已做的题目总数,初始值为ans=a + b。使用c变量来计算每天的题目数量。

    在for循环中,从第3天开始计算每天的题目数量。首先,计算当天的题目数量cc,并将其累加到ansans中。然后,更新aabb的值,将aa赋值为原来的bb,将bb赋值为cc

    在每次循环中,检查cc是否大于等于mm。如果是,则跳出循环。因为题目要求当题数大于等于mm时,接下来的所有日子里不再做题。

    循环结束后,输出ansans的值,即小杨总共做的题目数量。

    【参考程序】

    #include <bits/stdc++.h>
    using namespace std;
    long long a, b, m, n, ans, c;
    int main()
    {
    	
    	cin>>a>>b>>m>>n;
    	ans = a+b;
    	for(int i=3; i<=n; i++)
    	{
    		c = a+b;
    		ans += c;
    		a = b;
    		b = c;
    		if(c>=m) break;
    	}
    	cout<<ans;
    	return 0;
    }
    
    • 1

    [GESP202312 二级] 小杨做题

    信息

    ID
    559
    时间
    1000ms
    内存
    512MiB
    难度
    5
    标签
    递交数
    406
    已通过
    142
    上传者