日期:2014-05-20  浏览次数:20857 次

书上题目 04-17
求4位车牌号:
  特征:1. 前两位数字相同
  2. 后两位数字相同,但与前两位不同
  3. 是某个整数平方
以下我写的代码:
public class CarLisence {
  public static void main(String [] args){
  new GuessNum().guess();
  }
}
class GuessNum{
public void guess(){
int [] a=new int[4];

int n,i,fac ;
for(n=33;n<100;n++){
fac=(int)Math.pow(n, 2);
for(i=0;i<=3;i++){
a[i]=fac%10;
fac=fac/10;
}
if(a[0]==a[1]&&a[2]==a[3]){
System.out.println("number:"+a[3]+a[2]+a[1]+a[0]);
}
 
}
}
}
望指点!
各位高手也贴一下代码,让小弟看看各位的思路学习一下

------解决方案--------------------
可以这样。
Java code

public class CarLisence {
    public static void main(String[] args) {
        new GuessNum().guess();
    }
}
class GuessNum {
    public void guess() {
        int n, i, fac;
        for (n = 33; n < 100; n++) {
            fac = (int) Math.pow(n, 2);
            String s = String.valueOf(fac);
            if (s.charAt(0) == s.charAt(1) && s.charAt(2) == s.charAt(3)) {
                System.out.println("number:" + s);
            }

        }
    }
}

------解决方案--------------------
探讨

引用:

charAt(index)是寻找字符串在某个位置index的字符,应该是楼主要表达的意思吧。

嗯 是的 这样方便许多 谢谢!

------解决方案--------------------
import java.util.*;

class TestJava15 
{
public static void main(String[] args) 
{
int num1 = 0; //前两位
int num2 = 0; //后两位
int s = 0;
int result = 0;

ArrayList<Integer> al = new ArrayList<Integer>();

for (int i=32; i<100; i++)
{
s = i*i;
al.add(s);
}

Iterator it = al.iterator();

while (it.hasNext())
{
int a = (Integer)it.next();

num1 = a/100;
num2 = a%100;

if(num1/10 == num1%10 && num2/10 == num2%10 && num1 != num2)
{
result = a;
}

}

System.out.println(result);

}
}

------解决方案--------------------
探讨
Java code

for(int i = 1; i < 10; i++) {
for(int j = 0; j < 10; j++) {
int z = i * 1100 + j * 11;
int result = (int)Math.pow(Math.round(Math.sqrt(z)), ……