c++打卡第九天

一、问题描述。

      有一辆撞人逃逸的车辆,有三人目击他的车牌号,其中一人说 它的前两数是相同的,零一人说它的后两位是相同的,第三个人说,这四位数是一个整数的平方,如何求解这个车牌号。

二、设计思路。

       ①、对于此类求解问题,需要采用穷举法,对这个车牌号进行开方是否为一个整数,如果是,则这个车牌号正确。

       ②、用循环逐次相加两个不同数的值。

       ③、穷举出平方为四位数的数,即从32到99,问是否有数等于此时这个车牌号码,如果有,打印出这个车牌号。

       ④、其实穷举更多只会增加运行时间,我们可以调用库函数math,并且对这个计算完的,车牌号进行开方。

       ⑤、如果这个开方得到的数值减去这个数值强制类型转换为int类型后为0,说明这时候存在一个整数的平方等于这时候的车牌号,这样就可以大大减少计算量。

三、流程如。

四、代码实现。

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    int a,b,k;
    int cp;
    for(a=0;a<10;a++)
    {
        for(b=0;b<10;b++)
        {
            if(a!=b)
            {
                cp=a*1000+a*100+b*10+b;
                double k=sqrt(double(cp));
                if(k-int(k)==0)
                {
                    cout<<"此时k为:"<<int(k)<<endl; 
                    cout<<"车牌号为:"<<int(cp)<<endl;
                }
            }
        }
    }
    return 0;
 } 

五、代码实现。

 

posted @ 2023-04-19 11:02  七安。  阅读(22)  评论(0编辑  收藏  举报