【GPLT】L1-062 幸运彩票

正文索引 [隐藏]

题目描述:

彩票的号码有 6 位数字,若一张彩票的前 3 位上的数之和等于后 3 位上的数之和,则称这张彩票是幸运的。本题就请你判断给定的彩票是不是幸运的。

输入描述:

输入在第一行中给出一个正整数 N(N≤ 100)。随后 N 行,每行给出一张彩票的 6 位数字。

输出描述:

对每张彩票,如果它是幸运的,就在一行中输出 You are lucky!;否则输出 Wish you good luck.

输入样例:

2
233008
123456

输出样例:

You are lucky!
Wish you good luck.

解题思路:

水题。直接无脑判断前三位数之和与后三位数之和是否相等即可。

AC代码:

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int N;
    cin >> N;
    while(N--)
    {
        string str;
        cin >> str;
        int sum1 = 0, sum2 = 0;
        for(int i = 0; i < 6; i++)
        {
            if(i < 3)
            {
                sum1 += str[i]-'0';
            }
            else
            {
                sum2 += str[i]-'0';
            }
        }
        if(sum1 == sum2)
        {
            cout << "You are lucky!" << endl;
        }
        else
        {
            cout << "Wish you good luck." << endl;
        }
    }
    return 0;
}

二刷的AC代码:

#include <bits/stdc++.h>
using namespace std;

bool isLucky(string s)
{
    return (s[0]+s[1]+s[2])==(s[3]+s[4]+s[5]);
}

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
    int n;
    cin >> n;
    while(n--)
    {
        string str;
        cin >> str;
        cout << (isLucky(str)?"You are lucky!":"Wish you good luck.") << endl;
    }
    return 0;
}