黑马程序员技术交流社区
标题:
来个练习,大家来指点下
[打印本页]
作者:
黑马—王宁
时间:
2012-2-29 14:51
标题:
来个练习,大家来指点下
要求两个两位数相乘,得到结果是一个三位数,这个三位数每一位数(个位,十位,百位)都必须是奇数,请打出符合要求的结果。打出形式: **x**=***
作者:
黑马—王宁
时间:
2012-2-29 14:55
1.定义二个两位数,并*的值赋给一个变量
2.判断这个数是不是在要求的区间。
3.确定在区间后,在判断这个三位数的前两位%2是否==1
4.以述成立,再判断百位数%2是否==1
5.以上都成立,则输出结果
class sanWeiShu{
public static void main(String[] args)
{
for(int x=11;x<=99;x=x+2)
{for(int y=11;y<=99;y=y+2)
{
int sum=x*y;
if(sum%2==1&&sum/10%2==1&&sum/100%2==1&&sum<=999&&sum>100)
{
System.out.print(x+"X"+y+"="+sum+"/t" );
}
}
}
}
}
作者:
黑马—王宁
时间:
2012-2-29 14:57
有没有办法把两个数相乘的结果相同的去掉一个呢?????
作者:
段玉超
时间:
2012-2-29 15:09
本帖最后由 段玉超 于 2012-2-29 15:16 编辑
去除重复的方法其实非常简单 可以使用 java 的java.util.HashSet
思路:
1,创建一个hashset 实例,
2,将计算结果放入hashset中
3,从hashset中读出结果即可
但是hashset是无序的,为了存储两个因数,可以定义一个结构或者类,不过定义的时候一定要注意,记得重写equals 和hashCode。
作者:
沈样
时间:
2012-2-29 16:46
这可以在论坛里找一下应该都有的
作者:
dangfei
时间:
2012-2-29 19:55
public static void main(String args[]){
ArrayList list=new ArrayList();//定义集合存储把相乘的结果
for(int x=11;x<=99;x=x+2)
{for(int y=11;y<=99;y=y+2)
{
int sum=x*y;
if(sum%2==1&&sum/10%2==1&&sum/100%2==1&&sum<=999&&sum>100)
{
if(!list.contains(sum))//判断现有集合中是否存在乘积
{
System.out.println(x+"X"+y+"="+sum );
list.add(sum); //若不存在则放入集合
}
}
}
}
}
//做了一些改动,加入了一个List存放乘积,后再存入乘积时判断集合中是否已存在此乘积。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2