zoukankan      html  css  js  c++  java
  • 对找数程序的理解

    经过几个小时的思考,总算是对老师出的这个程序题有了一定的了解。该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);
            }
          }
        }
      }
    }

    1、该程序的作用是进行查找一个能且仅能被两个在给定的数组中连续的数字不整除的数字,该数字的范围在-2^63~2^63直接的整数。给定的数组中的数字是2~31,从这里找连续的两个符合条件的整数,即rg数组。第一个for循环设定的是要找的这个数字的范围,第二个for循环设置的是查找两个整数,使其能够把数字i进行整除。而最后一个if语句的设定是保证找的数字是两个且能够使这两个数字能够是连续的,中间不间断。

    2、这样的数字估计不存在。在VS2015版本下运行该程序,经过了将近一个小时的运算仍然没有结果。

    4、在双核电脑下,应充分利用电脑的内存及处理器。让CPU进行并行处理任务的计算量。同时要想更高的利用内存以及CPU的性能最好还要修改一下程序的流程,更改程序数据结构,使其能够自动的利用较多的内存。

  • 相关阅读:
    想要快速上手 Spring Boot?看这些教程就足够了!| 码云周刊第 81 期
    Eclipse Java注释模板设置详解以及版权声明
    java跨域解决
    微信公众号创建
    Java与JS生成二维码与条形码
    Java基础break、continue语句的用法
    分布式文件系统介绍
    Hadoop的RPC机制及简单实现
    RPC简介与hdfs读过程与写过程简介
    JVM的Client模式与Server模式
  • 原文地址:https://www.cnblogs.com/sunbuqiao/p/5296027.html
Copyright © 2011-2022 走看看