zoukankan      html  css  js  c++  java
  • 阅读程序

    这次阅读的是c#程序代码,由于没接触过,还查了查c#的使用。不过大致还是能看懂的。阅读代码如下:

    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);
            }
          }
        }
      }
    }

    网上搜索得知Int64为64位有符号整数,搜索MaxValue为Int64最大可能值。百度到的测试值代码及运行结果---->

    运行结果来看Int64/2结果有19位!

    i为从1开始一直到Int64的最大数,作为被除数;rg[]中的数作为除数;hit记录做了几次除法;hit1,hit2分别记录第一个,第二个不能整除的数。

    从循环以及判断条件来看,我认为这段程序是要找一个不能被rg数组中两个连续的数整除,能被这两个数后的一个数整除,将这样的一个数打印出来。

    在VS上运行程序,等了十多分钟也没见结果,Int64也确实很大。

    和湾姐讨论了好久,还算了好久,觉得自己可以将数算出来。开始将问题想得简单,认为最后两个数30,31的最小公倍数930不能被29,28整除便觉得930就是这个数了,于是直接将i改成930测试(Hello World 判断是否运行结束)

    发现不对,930并不是那个满足条件的数。我们又仔细的想了想认为这个数可能是不存在的,不能被2~31中两个连续的数整除,但能被其余的任何一个数整除。个人觉得这样的数不存在。

    多核计算机处理这个程序是否可以用到多线程处理,程序并发执行。只是操作系统课有讲过多线程,而具体怎么做也是不明白……

    对于问题三,估计运行时间,真的是估计不出来……

  • 相关阅读:
    算法竞赛入门经典习题2-3 韩信点兵
    ios入门之c语言篇——基本函数——5——素数判断
    ios入门之c语言篇——基本函数——4——数值交换函数
    144. Binary Tree Preorder Traversal
    143. Reorder List
    142. Linked List Cycle II
    139. Word Break
    138. Copy List with Random Pointer
    137. Single Number II
    135. Candy
  • 原文地址:https://www.cnblogs.com/cuilulu/p/5295098.html
Copyright © 2011-2022 走看看