1 条题解

  • 0
    @ 2025-10-10 15:48:08

    C++ :

    #include <bits/stdc++.h>
    using namespace std;
    
    bool pd(int a[]){
    	for(int i = 0;i < 10;i++){
    		if(a[i] > 1){
    			return false;
    			break;
    		}
    	}
    	
    	if(a[0] != 0){
    		return false;
    	}else{
    		return true;
    	}
    }
    
    void chai(int n,int a[]){
    	while(n != 0){
    		a[n%10]++;
    		n = n / 10;
    	}
    }
    
    int main(){
    	int i,j,k;
    	int a[10] = {0};
    	for(i = 100;i <= 999;i++){
    		chai(i,a);
    		if(pd(a)){
    			j = i * 2;
    			k = i * 3;
    			chai(j,a);
    			chai(k,a);
    			if(pd(a)){
    				cout<<i<<" "<<j<<" "<<k<<endl;
    			}
    		}
    		
    		memset(a,0,sizeof(a));
    	}
    }
    

    Java :

    public class Main {
    
    	public static void main(String[] args) {
    		
    		
    		int i,j ,k,l,sum;
    		int[] a=new int[10];
    		for(i=123;3*i<=987;i++) {
    			
    			for(int q=0;q<10;q++) {
    				a[q]=0;
    				
    			}
    			sum=0;
    			// 每次循环重置数组
    			a[i/100]=1;
    			a[i/10%10]=1;
    			a[i%10]=1;
    			j=i*2;
    			a[j/100]=1;
    			a[j/10%10]=1;
    			a[j%10]=1;
    			k=i*3;
    			a[k/100]=1;
    			a[k/10%10]=1;
    			a[k%10]=1;
    			
    			for(l=1;l<10;l++ ) {
    				sum=sum+a[l];
    			}	
    			if(sum==9&&a[0]==0) {
    				
    			System.out.println(i+" "+j+" "+k);
    
    			}					
    										
    			
    	
    		}
    		
    	
    	}
    
    }
    
    

    Python :

    a=[]
    for i in range(123,330):
        b=2*i
        c=3*i
        a=list(str(i)+str(b)+str(c))
        f=0
        for j in range(9):
            for k in range(j+1,9):
                if(a[j]==a[k] or a[j]=="0"):
                    f=1
                    break
        if(f==0):
            print(i,b,c)
    
    • 1

    信息

    ID
    447
    时间
    1000ms
    内存
    32MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者