ICANDIES - Candies

· · 题解

大水题

首先,因为两堆糖果的数量分别为 35 的倍数,所以我们可以让 i 每次加 35。因为 n 除以 5 显然小于 n 除以 3,所以我们让 i 每次增加 5

因为 i 已经是 5 的倍数了,所以我们只要考虑 n-i 是不是 3 的倍数即可。因为题目要求 n-i 尽可能大,所以当我们找到第一个满足条件的 i 以后,就立即输出 n-i 并标记已找到答案,马上退出循环。

最后,如果 flag 的值仍为 false 则输出 -1

AC 代码

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int t,n;
    bool flag;
    scanf("%d",&t);
    for(int k=1;k<=t;k++)
    {
        flag=false;
        scanf("%d",&n);
        printf("Case %d: ",k);
        for(int i=5;i<n;i+=5)
        {
            if((n-i)%3==0)
            {
                printf("%d\n",n-i);
                flag=true;
                break;
            }
        }
        if(!flag)printf("-1\n");
    } 
    return 0;
}

附上 AC记录