洛谷P1008 三连击(Java)

在这里插入图片描述我的思路:先确定第一个数,将第一个数乘二,排除不合规则的得到第二个数,再将第一个数乘三排除不合规则的得到第三个数。
最初的代码:

package 三连击;

public class test {
public static void main(String arg[])
{
	int a,b,c,d,e,f,g,h,i;
	int l,m;
	for(a=1;a<=9;a++){
		for(b=1;b<=9;b++) {
			for(c=1;c<=9;c++) {
				if((a!=b)&&(a!=c)&&(b!=c)&&(a*100+b*10+c<334)) {
					l=(a*100+b*10+c)*2;
					d=l/100;
					e=(l%100)/10;
					f=l%10;
					
					if((d!=a)&&(d!=b)&&(d!=c)&&(e!=a)&&(e!=b)&&(e!=c)&&(f!=a)&&(f!=b)&&(f!=c)&&(d!=e)&&(d!=f)&&(e!=f)) {
						m=(a*100+b*10+c)*3;
						g=m/100;
						h=(m%100)/10;
						i=m%10;
			
						if((g!=a)&&(g!=b)&&(g!=c)&&(g!=d)&&(g!=e)&&(g!=f)&&(h!=a)&&(h!=b)&&(h!=c)&&(h!=d)&&(h!=e)&&(h!=f)&&(i!=a)&&(i!=b)&&(i!=c)&&(i!=d)&&(i!=e)&&(i!=f)&&(g!=h)&&(h!=i)&&(g!=i)) {
							System.out.print(a*100+b*10+c+" "); 
							System.out.print(l+" "); 
							System.out.print(m); 
							System.out.println();

						
						}
					}
					
				}
			}
			
		}
	}
}
}

运行结果如下

192 384 576
219 438 657
267 534 801
273 546 819
327 654 981

但提交通不过,找了半天错发现是因为题目要求数字1-9,第三组答案有0,修改代码如下:

package 三连击;

public class test {
public static void main(String arg[])
{
	int a,b,c,d,e,f,g,h,i;
	int l,m;
	for(a=1;a<=9;a++){
		for(b=1;b<=9;b++) {
			for(c=1;c<=9;c++) {
				if((a!=b)&&(a!=c)&&(b!=c)&&(a*100+b*10+c<334)) {
					l=(a*100+b*10+c)*2;
					d=l/100;
					e=(l%100)/10;
					f=l%10;
					
					if((d!=a)&&(d!=b)&&(d!=c)&&(e!=a)&&(e!=b)&&(e!=c)&&(f!=a)&&(f!=b)&&(f!=c)&&(d!=e)&&(d!=f)&&(e!=f)) {
						m=(a*100+b*10+c)*3;
						g=m/100;
						h=(m%100)/10;
						i=m%10;
			
						if((g!=a)&&(g!=b)&&(g!=c)&&(g!=d)&&(g!=e)&&(g!=f)&&(h!=a)&&(h!=b)&&(h!=c)&&(h!=d)&&(h!=e)&&(h!=f)&&(i!=a)&&(i!=b)&&(i!=c)&&(i!=d)&&(i!=e)&&(i!=f)&&(g!=h)&&(h!=i)&&(g!=i)) {
							if((a!=0)&&(b!=0)&&(c!=0)&&(d!=0)&&(e!=0)&&(f!=0)&&(g!=0)&&(h!=0)&&(i!=0)) {/*加了不为零的条件*/
							System.out.print(a*100+b*10+c+" "); 
							System.out.print(l+" "); 
							System.out.print(m); 
							System.out.println();

							}
						}
					}
					
				}
			}
			
		}
	}
}
}

通过。
还是审题考虑不周到的原因。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值