解析:类似斐波那契数列求和,中间加了大于等于m就停止继续求,

详见代码:

#include <bits/stdc++.h>
using namespace std;
int main() {
    int a, b, n, m, c;
    int ans;
    cin >> a >> b >> m >> n;
    ans = a + b;//前两天做题总数
    for(int i = 3; i <= n; i++) {//枚举第3天到第n天
        c = a + b;//第i天做的题是前两天的总和
        ans += c;//求和
        a = b;//对于第i+1天,昨天做的题变成前天做的题
        b = c;//今天做的题变成昨天做的题
        if (c >= m) {//如果今天做的题大于等于m,不再做题
            break;
        }
    }
    if(n == 1) {//如果只有一天
        ans = a;
    }
    if (n == 2) {//如果只有两天
        ans = a + b;
    }
    cout << ans;
    return 0;
}

 

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐