抓交通肇事犯

一、问题描述

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

二、问题分析

  车号一共有四位,设为abcd,前两位相等:a=b,后两位相等:c=d。但是后两位与前两位不相等,即b!=c。

又有条件:四位的车号刚好是-一个整数的平方。即找到b*1000+b*100+c*10+c==i*i;b和c是从0~9的个位数,i*i的范围是1000~9999,分两层循环即可,若条件成立即找到了。

 三、代码实现

复制代码
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    int a, b;
    for (a = 0; a < 10; a++)
    {
        for (b = 0; b < 10; b++)
        {
            double x = 1100.0 * a + 11.0 * b;
            int y = sqrt(x);//注意这里要把开根号的结果转化成整数,不然y*y==x是恒成立的
            if (x >= 1000 && x <= 9999 &&y*y==x)
            {
                printf("%d%d%d%d\n", a, a, b, b);
            }
        }
    }
    return 0;
}
View Code
复制代码

 

 

posted @   海绵宝宝222  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示