hi.小杨做题

[GESP202312 二级] 小杨做题

题目描述

为了准备考试,小杨每天都要做题。第 1 1 1 天,小杨做了 a a a 道题;第 2 2 2 天,小杨做了 b b b 道题;从第 3 3 3 天起,小杨每天做的题目数量是前两天的总和。

此外,小杨还规定,当自己某一天做了大于或等于 m m m 题时,接下来的所有日子里,他就再也不做题了。

请问,到了第 N N N 天,小杨总共做了多少题呢?

输入格式

总共 4 4 4 行。第一行一个整数 a a a,第二行一个整数 b b b,第三行一个整数 m m m,第四行一个整数 N N N

保证 0 ≤ a , b ≤ 10 0 \le a,b \le 10 0a,b10 a , b < M < 1 , 000 , 000 a,b<M<1,000,000 a,b<M<1,000,000 3 ≤ N ≤ 364 3 \le N \le 364 3N364

输出格式

一行一个整数,表示小杨 N N N 天里总共做了多少题目。

样例 #1

样例输入 #1

1
2
10
5

样例输出 #1

19

样例 #2

样例输入 #2

1
1
5
8

样例输出 #2

12

提示说明

样例解释 1

小杨第一天做 1 1 1 题,第二天做 2 2 2 题,第三天做 1 + 2 = 3 1+2=3 1+2=3 题,第四天做 2 + 3 = 5 2+3=5 2+3=5 题,第五天做 3 + 5 = 8 3+5=8 3+5=8 题。因此他总共做了 1 + 2 + 3 + 5 + 8 = 19 1+2+3+5+8=19 1+2+3+5+8=19 题。

样例解释 2

小杨前 5 5 5 天分别做了 1 , 1 , 2 , 3 , 5 1,1,2,3,5 1,1,2,3,5 题,由于第 5 5 5 天小杨做了 5 5 5 题,而 m = 5 m=5 m=5,于是小杨从此以后不再做题。因此小杨总共做了 1 + 1 + 2 + 3 + 5 = 12 1+1+2+3+5=12 1+1+2+3+5=12 题。

代码内容

// #include <iostream>
// #include <algorithm>
// #include <cstring>
// #include <stack>//栈
// #include <deque>//队列
// #include <queue>//堆/优先队列
// #include <map>//映射
// #include <unordered_map>//哈希表
// #include <vector>//容器,存数组的数,表数组的长度
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
const ll N=410;
ll va[N];

int main()
{
    ll a,b,m,n;
    cin>>a>>b>>m>>n;

    ll num=0;
    num+=a;
    if(a>=m)
    {
        cout<<num<<endl;
        return 0;
    }
    
    num+=b;
    if(b>=m)
    {
        cout<<num<<endl;
        return 0;
    }
    
    va[1]=a;va[2]=b;
    for(ll i=3;i<=n;i++)
    {
        va[i]=va[i-1]+va[i-2];
        num+=va[i];
        if(va[i]>=m) break;
    }

    cout<<num<<endl;

    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pretty Boy Fox

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值