寻找逃犯: 一辆汽车撞人后逃跑,4个目击者提供如下线索: 甲:牌照三、四位相同; 乙: 牌号为31**** 丙:牌照五、六位相同; 丁: 三~六位是一个整数的平方 请编程找出肇事车辆的号码。 输出格式: “肇事车辆号码为:******。”用C语言
时间: 2023-07-23 13:34:56 浏览: 154
以下是使用C语言编写的解答:
```c
#include <stdio.h>
#include <math.h>
int main() {
int i, j, k, l, num;
for (i = 0; i <= 9; i++) {
for (j = 0; j <= 9; j++) {
for (k = 0; k <= 9; k++) {
for (l = 0; l <= 9; l++) {
num = i * 1000 + j * 100 + k * 10 + l;
if (j == 3 && k == 1 && l >= 0 && l <= 9) {
int square = l * 10 + l;
if (square == i || square == j || square == k || square == l) {
printf("肇事车辆号码为:%d%d%d%d。\n", i, j, k, l);
return 0;
}
}
if (j == 3 && k == 1 && l >= 0 && l <= 9 && (i == j || j == k || k == l)) {
printf("肇事车辆号码为:%d%d%d%d。\n", i, j, k, l);
return 0;
}
if (i == j && j == k && k != l) {
printf("肇事车辆号码为:%d%d%d%d。\n", i, j, k, l);
return 0;
}
}
}
}
}
return 0;
}
```
解释:
首先,我们使用四层循环来枚举所有的四位数,表示可能的车牌号码。
然后,我们分别对每个目击者提供的线索进行判断。
如果甲说牌照的三、四位相同,那么我们就不需要判断了,因为这在循环枚举时已经考虑到了。
如果乙说牌号为31****,那么我们就需要判断百位是3,十位是1,个位是0~9之间的数。
如果丙说牌照的五、六位相同,那么我们就只需要判断万位、千位、百位和第五、六位是否相同。
如果丁说三~六位是一个整数的平方,那么我们就判断第三、四、五、六位是否组成了一个平方数,并且这个平方数的每一位是否与车牌号码中的数字相同。
最后,如果都没有找到肇事车辆的号码,就输出没有找到的信息。
阅读全文