zoukankan      html  css  js  c++  java
  • 阅读代码

    using System;
    
    using System.Collections.Generic;
    
    using System.Text;
    
    namespace FindTheNumber
    
    {
      class Program
      {
        static void Main(string[] args)
        {
          int [] rg =
              {2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
               20,21,22,23,24,25,26,27,28,29,30,31};
          for (Int64 i = 1; i < Int64.MaxValue; i++)
          {
            int hit = 0;
            int hit1 = -1;
            int hit2 = -1;
            for (int j = 0; (j < rg.Length) && (hit <=2) ; j++)
            {
              if ((i % rg[j]) != 0)
              {
                hit++;
                if (hit == 1)
                {
                  hit1 = j;
                }
                else if (hit == 2)
                {
                  hit2 = j;
                }
                else
                  break;
              }
    
            }
            if ((hit == 2)&& (hit1+1==hit2))
            {
              Console.WriteLine("found {0}", i);
            }
          }
        }
      }
    }
    

    问题1:这个程序要找的是符合什么条件的数?

    i是除了rg数组里两个相连不能整除,其余的数都能整除的数,例如,数组里11和12不能整除i,其余的数都能整除i。

    这个程序有两个for循环嵌套到一起,外层循环Int64的意思是64位有符号数的意思,MaxValue就是等于2^63-1。

    在内层循环,输出时需满足hit==2,说明i只不能整除数组里的两个数。输出时还需满足hit1+1==hit2,说明数组中不能整除i的两个数在数组中是连续的。

    问题2:这样的数存在么?符合这一条件的最小的数是什么?

    我没有找到这样的数。而且我在电脑上运行了一下,等了很久都没有执行完成。也许存在这样的数,如果存在这个数会很大。

    问题3:在电脑上运行这一程序,你估计多长时间才能输出第一个结果?时间精确到分钟(电脑:单核CPU 4.0G Hz,内存和硬盘等资源充足)。

    外层循环需要执行2^63-1次,内层每次最多执行29次。该程序最多一共执行(2^63-1)*29次。

    问题4:在多核电脑上如何提高这一程序的运行效率?

    关闭其他无关的软件和网页,充分利用cpu的运行能力,从而提高cpu的运行效率。并且让多个cpu同时工作,提高程序的运行效率。

  • 相关阅读:
    165. Compare Version Numbers
    164. Maximum Gap
    3、桶排序
    162. Find Peak Element
    160. Intersection of Two Linked Lists
    155. Min Stack
    154. Find Minimum in Rotated Sorted Array II
    153. Find Minimum in Rotated Sorted Array
    Linux/Unix系统编程手册 第二章:基本概念
    Linux/Unix系统编程手册 第一章:历史和标准
  • 原文地址:https://www.cnblogs.com/bjzsr/p/5296006.html
Copyright © 2011-2022 走看看