代码不乖没有给我AC,因此求大佬调教调教代码~
  • 板块学术版
  • 楼主封禁用户
  • 当前回复7
  • 已保存回复9
  • 发布时间2024/8/8 12:26
  • 上次更新2024/8/8 13:38:13
查看原帖
代码不乖没有给我AC,因此求大佬调教调教代码~
695833
封禁用户楼主2024/8/8 12:26

广州铁一专属通道:吃糖


问题描述

小C同学十分喜欢吃糖,他每天吃的糖是他前天吃的糖加上他昨天吃的糖,但他吃的糖太多了,所以需要控制摄糖量。小C的老师程序龙帮他限定了吃糖数量,只给了他 nn 颗糖,他第 11 天吃了 aa 颗糖,第 22 天吃了 bb 颗糖,第 33 天吃了 a+ba+b 颗糖......

问:在第几天的时候糖不够吃了,差几颗?

输入格式

两行

第一行一个整数 n(1≤n≤10000)n(1\leq n\leq 10000)表示糖的颗数。

第二行两个整数 aa 和 bb。(0≤a,b≤10000)(0\leq a,b\leq 10000)

输出格式

输出两个整数,表示糖在第几天的不够吃,差几颗。两个数据用空格隔开。

输入数据 1

5
1 2

输出数据 1

3 1

#include <bits/stdc++.h>
using namespace std;
int n, a, b, sum, i = 2, x, y;
int main()
{
    cin >> n >> a >> b;
    if (a > n)//特判
    {
        cout << 1 << " " << a - n << endl;
        return 0;
    }
    else if (a + b > n)//特判×2
    {
        cout << 2 << " " << (a + b) - n << endl;
        return 0;
    }
    x = a;//把第二天的先加上
    y = b;//把第二天的先加上
    sum = a + b;//把第二天的先加上
    while (true)//从这开始算第三天
    {
        i++;//天数
        sum += x + y;//目前已经吃的糖
        x = y;//更新前天
        y = sum;//更新昨天
        if (sum > n)//如果大于了
        {
            cout << i << " " << sum - n << endl;
            return 0;
        }
    }
}
2024/8/8 12:26
加载中...