zoukankan      html  css  js  c++  java
  • 最大乘积

    把 1~9 这9个数字分成两组,中间插入乘号,
    有的时候,它们的乘积也只包含1~9这9个数字,而且每个数字只出现1次。

    比如:
    984672 * 351 = 345619872
    98751 * 3462 = 341875962
    9 * 87146325 = 784316925
    ...

    符合这种规律的算式还有很多,请你计算在所有这些算式中,乘积最大是多少?

    注意,需要提交的是一个整数,表示那个最大的积,不要填写任何多余的内容。
    (只提交乘积,不要提交整个算式)

     答案:

    代码:

    import java.util.Scanner;
    public class Main {
        private static Scanner sc = new Scanner(System.in);
        private static int [] num = new int[10];
        private static boolean [] vis = new boolean[10];
        private static long ans = 0;
        private static void check(long a,long b) {
            long d = a * b;
            boolean [] v = new boolean[10];
            if(d < 100000000 || d > 987654321) return;
            while(d != 0) {
                if(v[(int)(d % 10)] || d % 10 == 0) return;
                v[(int)(d % 10)] = true;
                d /= 10;
            }
            ans = Math.max(ans, a * b);
        }
        private static void cut() {
            for(int i = 0;i <= 7;i ++) {
                long d1 = 0,d2 = 0;
                for(int j = 0;j <= i;j ++) {
                    d1 = d1 * 10 + num[j];
                }
                for(int j = i + 1;j < 9;j ++) {
                    d2 = d2 * 10 + num[j];
                }
                check(d1,d2);
            }
        }
        private static void dfs(int k) {
            if(k >= 9) {
                cut();
                return;
            }
            for(int i = 1;i <= 9;i ++) {
                if(vis[i]) continue;
                vis[i] = true;
                num[k] = i;
                dfs(k + 1);
                vis[i] = false;
            }
        }
        public static void main(String[] args) {
            dfs(0);
            System.out.println("答案 " + ans);
        }
    }
  • 相关阅读:
    HDevEngine in .NET Applications MultiThreading
    C# 打开以对话框,获取文件夹路径 、文件的路径、文件名
    C#设计模式总结
    C#使用Aspose.Cells导出Excel简单实现
    [相机选型] 双目视觉系统的器材选型和搭建
    08 Django组件-Forms组件
    MySql数据库基础知识
    MySql数据库多表操作
    补充01 Django 类视图
    07 Django组件-中间件
  • 原文地址:https://www.cnblogs.com/8023spz/p/10761037.html
Copyright © 2011-2022 走看看