车牌号前两位相同,后两位相同,并且整个车牌表示的数是一个完全平方数。

时间:2022-12-10 00:39:50
package com.mambali.test;
/*
 * 车牌号前两位相同,后两位相同,并且整个车牌表示的数是一个完全平方数。
 * 解题思路:车牌总共有四位数。所以解决这个问题的关键是:1、如何找出
 *  四位数中的完全平方数。2、判断这个完全平方数是不是前两位
 * 相同,并且后两位也相同。
 * 第一个问题:如果将所有四位数都用来检测是否为完全平方数,需要进行
 * (1000-9999) 9000次运算,计算量非常大。所以我们
 * 采用判断32-99的平方数是否满足第二个条件即可。因为
 * 31的平方是三位数,100的平方是五位数。
 * 第二个问题:我们可以利用取余运算符和整数除法规则来实现。比如要对7824
 * 进行上述比较,可以先把这个数分成两截。方法如下:int a = 
 * 7824/100;(a = 78)int b = 7824%100(b = 24);
 * 这样就成功把7824分成两段,然后再分别判断a和b个位和十位是否
 * 分别相等就可以了。判断的方法如下:if(a/10 == a%10)。
 */
public class ChePaiTest {
public static void main(String []args){
int i,a,b;
for(i = 32;i < 100;++i){
a = (i * i)/100;
b = (i * i)%100;
if(a/10 == a%10&&b/10 == b%10){
System.out.print("前两位和后两位分别" +
"相同的四位完全平方数是:"+i*i);
}
}
}
}