zoukankan      html  css  js  c++  java
  • 算法---001

    题目:用1、2、3、4、5、6、7、8、9九个数字拼成一个九位数(每
    个数字恰好用一次),使得它的前三位、中间三位、最后三位的比值是1 : 2 : 3。例
    如192384576就是一个合法的解,因为192 : 384 : 576 = 1 : 2 : 3

    看到这种要求一般会想到 这种逻辑

    var m1 = x * 100 + y * 10 + z; //前三位数
    var m2 = m1 * 2;
    var m3 = m1 * 3;

    而每个数都是从1-9之间取 所以会产生各种排序组合

    for(int x=1;x<10;x++)  // 12 13 14 

    {  

      for(int y=1;y<10;y++){

        for(int z=1;z<10;z++){

        }

      }

    }

    稍微分析一下了,还是上代码,代码只现实现功能,没有什么复杂时间度,性能,以后算法学好在优化

     class Program
        {
            static void Main(string[] args)
            {
               
                for (int x = 1; x <10; x++) //1到9 
                {
                    for (int y = 1; y <10; y++)
                    {
                        if (x == y) continue;
                        for (int z = 1; z <10; z++)
                        {
                            if(x==y||y==z||x==z) continue;// 确保无重复
    
                            var m1 = x * 100 + y * 10 + z; //前三位数 
                            var m2 = m1 * 2;
                            var m3 = m1 * 3;
                            if (m3 >= 1000) continue;//跳出
                            if (!m1.ToString().Contains("0") && !m2.ToString().Contains("0") && !m3.ToString().Contains("0"))
                            {
                                var s = m1.ToString() + m2.ToString() + m3.ToString(); //但是s里面可能有重复的,所以也要判断一下
    
                                if (CompareCC(s) > 0) continue;
                                Console.WriteLine("这个数是:" + s);
                            }
                        }
                    }
                }
    
    
    
            }
    
            public static int CompareCC(string s)
            {
                int count = 0;
                for (int i = 0; i <s.Length; i++)
                {
                    for (int j = 1; j <s.Length; j++)
                    {
                        if (i == j) continue;
                        if (s.Substring(i, 1) == s.Substring(j, 1)) //同位置字符串是否相同
                        {
                            count++;
                        }
                    }
                }
                return count;
            }
        }

  • 相关阅读:
    Mariadb/Mysql命令行常用命令
    Apache
    Web网页服务器软件——介绍
    力扣 2021.02.22
    openwrt 广告屏蔽大师 Plus+ 广告屏蔽
    AWX安装
    Command "python setup.py egg_info" failed with error code 1
    《Can you feel my world》--王力宏
    csv文件读入转字典
    每日一题力扣110 平衡二叉树
  • 原文地址:https://www.cnblogs.com/yzenet/p/3623667.html
Copyright © 2011-2022 走看看