zoukankan      html  css  js  c++  java
  • 算法提高 排列式

    问题描述
      7254是一个不寻常的数,因为它可以表示为7254 = 39 x 186,这个式子中1~9每个数字正好出现一次
      输出所有这样的不同的式子(乘数交换被认为是相同的式子)
      结果小的先输出;结果相同的,较小的乘数较小的先输出。
    输出格式
      每一行输出一个式子,式子中的等号前后空格、乘号(用字母x代表)前后空格
      较小的乘数写在前面
    样例输出
    问题中的式子在结果中会出现一行如下:
    7254 = 39 x 186
     1 import java.util.ArrayList;
     2 import java.util.Arrays;
     3 import java.util.Collections;
     4 import java.util.List;
     5 import java.util.Scanner;
     6 
     7 class Main{
     8     public static void main(String[] args) {
     9         List<A> list = new ArrayList<>();
    10         for(int i=1;i<2000;i++){
    11             for(int j=1;j<=i;j++){
    12                 int ji = i*j;
    13                 String s = ""+ji+i+j;
    14                 if(s.length()==9&&f(s)){
    15                     A a = new A();
    16                     a.ji = i*j;
    17                     a.cheng = j;
    18                     a.beiCheng = i;
    19                     list.add(a);
    20                 }
    21                 if(s.length()>9){
    22                     continue;
    23                 }
    24             }
    25         }
    26         Collections.sort(list);
    27         for(A a:list){
    28             System.out.println(a.ji+" = "+a.cheng+" x "+a.beiCheng);
    29         }
    30     }
    31     public static boolean f(String s){
    32         char[] a = {'1','2','3','4','5','6','7','8','9'};
    33         char[] b = s.toCharArray();
    34         Arrays.sort(b);
    35         int i;
    36         for(i=0;i<9;i++){
    37             if(a[i]!=b[i]){
    38                 break;
    39             }
    40         }
    41         if(i==9){
    42             return true;
    43         }else{
    44             return false;
    45         }
    46     }
    47 }
    48 class A implements Comparable<A>{
    49     int ji;
    50     int beiCheng;
    51     int cheng;
    52     @Override
    53     public int compareTo(A o) {
    54         if(ji==o.ji){
    55             return cheng-o.cheng;
    56         }else{
    57             return ji-o.ji;
    58         }
    59     }
    60 }
  • 相关阅读:
    Dockerfile常用指令
    Maven相关命令
    CI-CD平台搭建过程整理
    边工作边刷题:70天一遍leetcode: day 28-1
    边工作边刷题:70天一遍leetcode: day 28
    边工作边刷题:70天一遍leetcode: day 29-1
    边工作边刷题:70天一遍leetcode: day 29
    边工作边刷题:70天一遍leetcode: day 30-1
    边工作边刷题:70天一遍leetcode: day 30
    边工作边刷题:70天一遍leetcode: day 31-4
  • 原文地址:https://www.cnblogs.com/lolybj/p/6660365.html
Copyright © 2011-2022 走看看