题解 | Old Bill
Old Bill
https://www.nowcoder.com/practice/17a30153e092493e8b4d13f321343927
#include <iostream>
using namespace std;
int main() {
int n, x, y, z, k,
l; //k,l分别是两边模糊的数字,n是火鸡的数量,xyz是中间三位数字
int sum, per; //sum:n只火鸡的总价格 ;per:每只火鸡的价格
int found = 0;
while (scanf("%d", &n) != EOF) {
if (n > 0 && n < 100) {
scanf("%d %d %d", &x, &y, &z);
}
sum = k * 10000 + x * 1000 + y * 100 + z * 10 +
l; //sum 计算位置问题:sum 的计算应该放在内层循环中,因为 k 和 l 的值在每次循环中都会改变。
for (int k = 9; k > 0; k--) {
//从大到小遍历第一个模糊字
for (int l = 9; l >= 0; l--) {
//从大到小遍历最后一个模糊字
sum = k * 10000 + x * 1000 + y * 100 + z * 10 + l;
if (sum % n == 0) {
per = sum / n;
printf("%d %d %d\n", k, l, per);
found = 1;
break;
}
}
if (found == 1) {
break;
}
}
if(!found)
printf("0\n");
}
return 0;
}
// 64 位输出请用 printf("%lld")
王道机试指南 文章被收录于专栏
这个专栏是参考王道机试指南中相关的练习题哦

腾讯成长空间 5958人发布