2。(048, 10分)在一种室内互动游戏中,魔术师要每位观众心里想一个三位数abc(a、b、c分别是百位、
十位和个位数字),然后魔术师让观众心中记下acb、bac、bca、cab、cba五个数以及这5个数的和值。只要
观众说出这个和是多少,则魔术师一定能猜出观众心里想的原数abc是多少。例如,观众甲说他计算的和值是
1999,则魔术师立即说出他想的数是443,而观众乙说他计算的和值是1998,则魔术师说:“你算错了!”。请
编程模拟这个数字魔术游戏。
提示:参数是五个数的和,返回值是abc,如果找不到 abc,返回-1.
**输入格式要求:“%d”提示信息:"Input a sum:"
**输出格式要求:"The sum you calculated is wrong!\n""The number is %d\n"
程序运行示例如下:
Input a sum:1999
The number is 443
我用js实现的,你把代码改成c的就可以了,原理一样。
function getNumber(sum){
let a,b,c;
// acb、bac、bca、cab、cba
for(a = 1; a < 10; a++){
for(b = 0; b < 10; b++){
for(c = 0; c < 10; c++){
let total = a * 100 + 2 * b * 100 + 2 * c * 100 + 2 * c * 10 + 2 * a * 10 + b * 10 + 2 * b + c + 2 * a;
if(total === sum){
return `${a}${b}${c}`
}
}
}
}
return -1
}
console.log('Input a sum:1999')
console.log(`The number is ${getNumber(1999)}`)
console.log('Input a sum:1998')
console.log(`The number is ${getNumber(1998)}`)