题解 | #Old Bill#

Old Bill

https://www.nowcoder.com/practice/17a30153e092493e8b4d13f321343927

#include <stdio.h>
int main() {
    int N, X, Y, Z;
    while (scanf("%d\n%d%d%d", &N, &X, &Y, &Z) != EOF) {
        int $_XYZ_ = 0;
        int wan, ge;
        int mid = X * 1000 + Y * 100 + Z * 10;
        int rewan, rege;
        for (wan = 1; wan < 10; wan++) {
            for (ge = 0; ge < 10; ge++) {
                int sum = (wan * 10000 + mid + ge);
                if (sum > $_XYZ_ && sum / N * N == sum) { //如果可以这次算的最大值比以前的最大值大
                                                         //而且 sum/N*N==sum 也就是 火鸡的单价是整数
                    $_XYZ_ = sum;
                    rewan = wan;
                    rege = ge;

                }

            }
        }

        if ($_XYZ_ == 0) {
            printf("%d\n", 0);
        } else
            printf("%d %d %d\n", rewan, rege, $_XYZ_ / N);






    }







    return 0;
}

if (sum > $_XYZ_ && sum / N * N == sum) { //如果可以这次算的最大值比以前的最大值大

//而且 sum/N*N==sum 也就是 火鸡的单价是整数

这行代码是这题的精髓,如果没有后面的条件,那两个数永远都是9 9,因为可以不用被整除

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-20 19:57
已编辑
某大厂 golang工程师 23.0k*16.0, 2k房补,年终大概率能拿到
点赞 评论 收藏
分享
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务