P1618 三连击(升级版)(JAVA语言)

题目描述

将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数的比例是A:B:C,试求出所有满足条件的三个三位数,若无解,输出“No!!!”。

//感谢黄小U饮品完善题意

输入输出格式

输入格式:

 

三个数,A B C。

 

输出格式:

 

若干行,每行3个数字。按照每行第一个数字升序排列。

 

输入输出样例

输入样例#1: 复制

1 2 3

输出样例#1: 复制

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

说明

保证A<B<C

//又是一道水题

import java.util.Scanner;
public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);
		
		int m1=in.nextInt();
		int m2=in.nextInt();
		int m3=in.nextInt();
		

		int f=0;

		for(int a=123;a<999;a++){
			int b=a/m1*m2;
			int c=a/m1*m3;
			if(b>=999||c>=999)break;
					String a1=String.valueOf(a);
					String b1=String.valueOf(b);
					String c1=String.valueOf(c);
					
					if(a>b||a>c||b>c)break;
					if(pd(a1,b1,c1)){
						if(hj(a,b,c).equals(hj(m1,m2,m3))){
							f=1;
							System.out.println(a+" "+b+" "+c);
						}
					}
			
		}
		if(f==0){
			System.out.println("No!!!");
		}
		
	}

	private static String hj(int a, int b, int c) {
		// TODO Auto-generated method stub
		for(int i=a;i>=2;i--){
			if(a%i==0&&b%i==0&&c%i==0){
				a=a/i;
				b=b/i;
				c=c/i;
			}
		}
		return String.valueOf(a)+String.valueOf(b)+String.valueOf(c);
	}

	private static boolean pd(String a1, String b1, String c1) {
		// TODO Auto-generated method stub
		String s=a1+b1+c1;

		for(char i='1';i<='9';i++){
			if(s.contains(String.valueOf(i))==false){
				return false;
			}
		}
		return true;
	}

}

 

全部评论

相关推荐

粗心的雪碧不放弃:纯学历问题,我这几个月也是一直优化自己的简历,后来发现优化到我自己都觉得牛逼的时候,发现面试数量也没有提升,真就纯学历问题
点赞 评论 收藏
分享
孤寡孤寡的牛牛很热情:为什么我2本9硕投了很多,都是简历或者挂,难道那个恶心人的测评真的得认真做吗
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务