1 条题解
-
0
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
- 上传者