1 条题解

  • 0
    @ 2024-12-24 10:06:20

    C++ :

    #include <iostream>
    #include<cstring>
    using namespace std;
    
    bool vis[10];
    int num[3];
    void solve(int n)
    {
        if(n==3&&num[0]*2==num[1]&&num[0]*3==num[2]) cout<<num[0]<<' '<<num[1]<<' '<<num[2]<<endl;
        for(int i=1;i<=9;i++)
        {
            if(!vis[i])
            {
                vis[i]=true;
                for(int j=1;j<=9;j++)
                {
                    if(!vis[j])
                     {
                         vis[j]=true;
                         for(int k=1;k<=9;k++)
                         {
                             if(!vis[k])
                             {
                                 vis[k]=true;
                                 num[n]=i*100+j*10+k;
                                 solve(n+1);
                                 vis[k]=false;
                             }
                         }
                         vis[j]=false;
                     }
                }
                vis[i]=false;
            }
        }
    }
    int main()
    {
        memset(vis,false,sizeof(vis));
        solve(0);
    }
    
    

    Java :

    import java.util.Arrays;
    
    public class Main{
    	public static boolean Judge(int a,int b,int c){
    		boolean flag=true;
    		int nums[]=new int[9];
    		nums[0]=a/100;
    		nums[1]=a/10%10;
    		nums[2]=a%10;
    		nums[3]=b/100;
    		nums[4]=b/10%10;
    		nums[5]=b%10;
    		nums[6]=c/100;
    		nums[7]=c/10%10;
    		nums[8]=c%10;
    		Arrays.sort(nums);//从小到大排序
    		for(int i=0;i<8;i++){
    			if(nums[i]==nums[i+1]||nums[i]==0){//判断重复和0
    				flag=false;
    				break;//只要有重复就跳出循环
    			}else{
    				flag=true;
    			}
    		}
    		return flag;
    		}
    	public static void main(String[]args){
    		for(int i=123;i<=333;i++){//min=123;max=999
    			int j=i*2;
    			int k=i*3;
    			if(Judge(i,j,k)){
    				System.out.println(i+" "+j+" "+k);
    			}
    		}
    		
    	}
    }
    
    

    Python :

    # coding=utf-8
    d_set={1,2,3,4,5,6,7,8,9}
    
    for i in d_set:
        d1=i
        d_set_i=d_set.copy()
        d_set_i.remove(i)
        for j in d_set_i:
            d2=j
            d_set_j=d_set_i.copy()
            d_set_j.remove(j)
            for k in d_set_j:
                d3=k
                d_set_k=d_set_j.copy()
                d_set_k.remove(k)
    
    
                for a in d_set_k:
                    d4=a
                    d_set_a=d_set_k.copy()
                    d_set_a.remove(a)
                    for b in d_set_a:
                        d5=b
                        d_set_b=d_set_a.copy()
                        d_set_b.remove(b)
                        for c in d_set_b:
                            d6=c
                            d_set_c=d_set_b.copy()
                            d_set_c.remove(c)
    
                            for x in d_set_c:
                                d7=x
                                d_set_x=d_set_c.copy()
                                d_set_x.remove(x)
                                for y in d_set_x:
                                    d8=y
                                    d_set_y=d_set_x.copy()
                                    d_set_y.remove(y)
                                    for z in d_set_y:
                                        d9=z
                                        n1=d1*100+d2*10+d3
                                        n2=d4*100+d5*10+d6
                                        n3=d7*100+d8*10+d9
                                        if n3==3*n1 and n2==2*n1:
                                            print(n1,n2,n3)
                                        
    
    
    • 1

    信息

    ID
    2721
    时间
    1000ms
    内存
    125MiB
    难度
    10
    标签
    递交数
    2
    已通过
    2
    上传者