您的位置:首页 > 其它

神奇算式(ArrayList装载对象)

2016-03-13 15:23 141 查看
题目要求:

标题:神奇算式

由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成。

比如:

210 x 6 = 1260

8 x 473 = 3784

27 x 81 = 2187

都符合要求。

如果满足乘法交换律的算式算作同一种情况,那么,包含上边已列出的3种情况,一共有多少种满足要求的算式。

请填写该数字,通过浏览器提交答案,不要填写多余内容(例如:列出所有算式)。

输入代码:

主对象Main.java

import java.util.ArrayList;
import java.util.Arrays;
public class Main
{
public static void main(String[] args)
{
int a;
ArrayList<shu> list=new ArrayList<shu>();
for(int i=1;i<=100;i++)
{
for(int j=10;j<1000;j++)
{
a=i*j;
String str1=""+i+j;
String str2=""+a;
if(str1.length()==4&&str2.length()==4)
{
char []ss1=str1.toCharArray();
char []ss2=str2.toCharArray();
Arrays.sort(ss1);
Arrays.sort(ss2);
if (String.valueOf(ss1).equals(String.valueOf(ss2)))
{
shu S=new shu(i,j,a);
if(list.contains(S))//去掉重复的对象
{
continue;
}
else
{
list.add(S);
}
}

}
}
}
System.out.println(list.size());
for (shu x : list)
{
System.out.println(x.a + "*" + x.b + "=" + x.c);
}

}

}


需要装载的对象shu.Java

public class shu
{
int a;
int b;
int c;

public shu(int a,int b,int c)
{
this.a=a;
this.b=b;
this.c=c;
}

public boolean equals(Object obj)
{
if(obj instanceof shu)//判断obj对象是否为shu类的实例,返回boolean类型的数据
{
shu S=(shu) obj;
if ((this.a == S.a && this.b == S.b && this.c == S.c) || (this.a ==S.b && this.b == S.a && this.c ==S.c))
{
return true;
}

}
return false;
}

}


总结:

个人做法总是摆脱不了列举数据多余的情况,于是参考了某位大神的做法。也学到了很多新的知识点
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: