zoukankan      html  css  js  c++  java
  • 一道算法题

    小明正看着 203879 这个数字发呆。

        原来,203879 * 203879 = 41566646641

        这有什么神奇呢?仔细观察,203879 是个6位数,并且它的每个数位上的数字都是不同的,并且它平方后的所有数位上都不出现组成它自身的数字。

        具有这样特点的6位数还有一个,请你找出它!

        再归纳一下筛选要求:
        1. 6位正整数
        2. 每个数位上的数字不同
        3. 其平方数的每个数位不含原数字的任何组成数位

    答案是一个6位的正整数。

     /// <summary>
        /// 不同数字组成的6位数,其平方值中的各个数都和这六位数不同。
        /// </summary>
        public class NumberInMi
        {
            /// <summary>
            /// 获取6位数的数组表示。
            /// </summary>
            /// <param name="num"></param>
            /// <returns></returns>
            private int[] GetArray(int num)
            {
                int arrrayLenth = num.ToString().Length;
                int[] nums = new int[arrrayLenth];
                for (int i = 0; i < arrrayLenth; i++)
                {
                    nums[i] = num % 10;
                    num = num / 10;
                }
                return nums;
            }
            /// <summary>
            /// 判断num是否是不同数字组成的6位数。
            /// </summary>
            /// <param name="num"></param>
            /// <returns></returns>
            public bool IsSame(int[] nums)
            {
                for (int i = 0; i < nums.Length+1; i++)
                {
                    for (int j = i+1; j <nums.Length; j++)
                    {
                        if (nums[i]==nums[j])
                        {
                            return true;
                        }
                    }
                }
                return false;
            }//end IsSame
    
    
            /// <summary>
            /// 平方值中的各个数都和这六位数不同
            /// </summary>
            /// <param name="num"></param>
            /// <returns></returns>
            public bool IsSameWithSpare(long num)
            {
                long b = num * num;
                long[] orig = GetArray(num);
                long[] sp = GetArray(b);
                //if (IsSame(sp))
                //{
                //    return true;
                //}
                for (int i = 0; i < orig.Length; i++)
                {
                    for (int j = 0; j < sp.Length; j++)
                    {
                        if (orig[i]==sp[j])
                        {
                            return true;
                        }
                    }
                }
                return false;
            }
    
            private bool IsSame(long[] nums)
            {
                for (int i = 0; i < nums.Length + 1; i++)
                {
                    for (int j = i + 1; j < nums.Length; j++)
                    {
                        if (nums[i] == nums[j])
                        {
                            return true;
                        }
                    }
                }
                return false;
            }
    
            private long[] GetArray(long b)
            {
                int length = b.ToString().Length;
                long[] arr = new long[length];
                for (int i = 0; i < length; i++)
                {
                    arr[i]= b % 10;
                    b = b / 10;
                }
                return arr;
            }
    
            /// <summary>
            /// 结果:203879 639172
            /// </summary>
            public void Run()
            {
                for (long i = 100000; i < 9999999; i++)
                {
                    if (!IsSame(GetArray(i)))
                    {
                        if (!IsSameWithSpare(i))
                        {
                            Console.WriteLine("result:" + i.ToString());
                        }
                    }
                }
            }
        }
  • 相关阅读:
    How to configure security of ActiveMQ ?
    CentOS 搭建 nginx + tomcat
    25个 Git 进阶技巧
    写给Git初学者的7个建议
    my links
    Shell scripts to Create a local dir base on the time.
    81For全栈技术网
    一款可视化的在线制作H5
    在线制作h5
    在线制作h5——上帝的礼物
  • 原文地址:https://www.cnblogs.com/363546828/p/3434879.html
Copyright © 2011-2022 走看看