打卡 c语言趣味编程 抓交通肇事犯

qmz-znv2 / 2023-05-10 / 原文

一辆卡车违反交通规则,撞人后逃跑。现场有三人目击该事件,但都没有记住车号,只记下车号的一些特征。
 
  甲说:牌照的前两位数字是相同的;
 
  乙说:牌照的后两位数字是相同的,但与前两位不同;
 
  丙是数学家,他说:四位的车号刚好是一个整数的平方。
 
    请根据以上线索求出车号。

思路:

  1. 创建一个循环,遍历所有可能的四位数(范围为1000到9999)。
  2. 对于每个四位数,检查是否满足以下条件:
    • 牌照的前两位数字是相同的。
    • 牌照的后两位数字是相同的,但与前两位不同。
    • 车号刚好是一个整数的平方。
  3. 如果一个四位数满足以上所有条件,将其作为可能的车号输出。

流程图:

代码实现:

1 #include <iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     int i = 0, j = 0;
 6     int k = 0;             //k记录车牌号
 7     int flag = 0;          //用来记录是否找到嫌疑人车牌号
 8     for (i = 0; i <= 9; i++)
 9     {
10         for (j = 0; j <= 9; j++)
11         {
12             if (i != j)
13             {
14                 k = 1000 * i + 100 * i + 10 * j + j;
15                 for (int temp = 31; temp <= 99; temp++)
16                 {
17                     if (temp * temp == k)
18                     {
19                         flag = 1;
20                         cout << "车牌号为" << k << endl;
21                     }
22                 }
23             }
24             if (flag == 1)    //如果已经找到,直接退出
25             {
26                 return 0;
27             }
28         }
29     }
30 }