1.4算法入门之车牌号

一 . 问题描述

一辆卡车违反交通规则后肇事逃逸,现场有三人目击该事件,但都没有记住车牌号,但是都提供了线索,甲说前两位相同的,乙说后两位相同,但与前两位不同,丙是位数学家,说四位的车号刚好是一个整数的平方,请根据以上线索求出四位车牌号

二. 问题分析

 四位数a1,a2,a3,a4满足以下条件

1>       0=<a1.a2.a3.a4<=9

2>    a1=a2

3>    a3=a4

4>    a1不等于a3

5>1000*a1+100*a2+10*a3+a4=x*x   x属于实数

三. 算法设计

数值计算问题,求解不定方程,对于求解不定方程组一般用穷举循环,该题目运用的是双层穷举

外层双循环穷举出车牌号

里层穷举出平方值为四位数的是否与车牌号相等


#include <stdio.h>


int main(int argc,constchar * argv[]) {

    // insert code here...

    

    int i,j,k,temp,flag=0;//i代表前两位,j代表后两位k代表车牌号,temp代表某个数

    //flag代表找到了,找到了就退出循环;可以提高效率;

    //i!=j为已知条件

    

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

    {

        if (flag) {

            break;

        }

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

        {

            if (flag) {

                break;

            }

            

            //if (i!=j)

            {

                

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

                for (temp=31; temp<=99; temp++)

                {

                    if (temp*temp==k) {

                        printf("k=%d\n",k);

                        flag=1;

                        break;

                    }

                }


            }

            

        }

    }

    


    return 0;

}


1>这个程序有问题,不应该加flag,找到temp,应该继续循环,
外面两层的循环不应该退出,而是继续遍历,因为这个车牌号可能有多个,break值放在最里面的一层
2>找到的车牌号,应该保存在数组里,如果只是用K保存,后面的符合要求的车牌号会覆盖前面的,如果只是打印出车牌号,这每样没关系







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值