#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,因为可以不用被整除