C++每日一练——抓交通肇事犯

C++每日一练——抓交通肇事犯

————题源来自博主飞向星的客机c语言每日一练

1. 问题描述

一辆卡车违反交通规则,撞人后逃跑。现场有三人目击该事件,但都没有记住车号,只记下车号的一些特征。

甲说:牌照的前两位数字是相同的;//设为i

乙说:牌照的后两位数字是相同的,但与前两位不同;//设为j,且i!=j。

丙是数学家,他说:四位的车号刚好是一个整数的平方。

请根据以上线索求出车号。

分析问题

该题目是数值计算问题,求解不定方程。

对于这种求解不定方程组的问题,一般采用穷举循环。

首先设计双层循环穷举出所有由前两位数和后两位数组成的 4 位数车牌;

然后在最内层穷举出所有平方后值为 4 位数并且小于车牌号的数;

最后判断该数是否与车牌相等,若相等则打印车牌。

#include<iostream>

#include<stdio.h>

using namespacestd;

intmain()

{

        inti = 0;//i代表前两位车牌号数字,i属于零到九。

        intj = 0;//j代表后两位车牌号数字,j也属于0--9.

        intk = 0;//k代表车牌号

        inttemp = 0;

        for(i = 0; i <= 9; i++)

        {

             for(j = 0; j <= 9; j++)

             {

                 //判断前两位数和后两位数字是否不同

                 if(i != j)

                 {

                     //组成4位车牌号

                     k = 1000 * i + 100 * i + 10 * j + j;

                     //判断k是否是某个数的平方,若是则输出k

                     for(temp = 31; temp <= 99; temp++)//从32开始一个数的平方才会大于1000.

                     {

                         if(temp * temp == k)

                         {

                             cout<< "车牌号为:" <<k<<endl;

                         }

                     }

                 }

             }

        }

        return0;

    }

   


版权声明:本文为Smaircle原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。