读别人的代码

问题1:这个程序要找的是符合什么条件的数?
问题2:这样的数存在么?符合这一条件的最小的数是什么?

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

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

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:我觉得读别人的程序还不如自己写一个程序简单,大概是找一个范围在1-Int64.MaxValue之间的一个数。

              int hit = 0;
        int hit1 = -1;
        int hit2 = -1;
        for (int j = 0; (j < rg.Length) && (hit <=2) ; j++)

还要满足以上条件的一个数。而且hit还有hit2,hit1都有限制条件。

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

        }

输出的数也要满足(hit == 2)&& (hit1+1==hit2)这个条件才会输出这个数。

问题2:刚开始我以为手算可以找到呢,后来突然觉得我还是太年轻了,根本不在我的能力范围内,只好把代码敲进来看看运行结果了。

问题3:运行了半天还是没结果,我以为程序在输入过程中出现问题了呢,笑哭了,压根就运行不完  电脑一直在跑,还是没有结果,这是不是死循环啊。。。。。。。。。运行时间不详如截图,运行好久了。

问题4:百度了一下,知乎上有人说多线程可以提高效率。

时间: 2024-09-30 07:27:48

读别人的代码的相关文章

如何读别人的代码

p { margin-bottom: 0.25cm; direction: ltr; line-height: 115%; text-align: justify; orphans: 0; widows: 0 } p.western { font-family: "Calibri", serif; font-size: 10pt } p.cjk { font-family: "宋体"; font-size: 10pt } p.ctl { font-family: ;

写让别人能读懂的代码

随着软件行业的不断发展,历史遗留的程序越来越多,代码的维护成本越来越大,甚至大于开发成本.而新功能的开发又常常依赖于旧代码,阅读旧代码所花费的时间几乎要大于写新功能的代码. 我前几天看了一本书,书中有这么一句话: “复杂的代码往往都是新手所写,只有经验老道的高手才能写出简单,富有表现力的代码” 此话虽然说的有点夸张,可是也说明了经验的重要性. 我们所写的代码除了让机器执行外,还需要别人来阅读.所以我们要: 写让别人能读懂的代码 写可扩展的代码 写可测试的代码(代码应该具备可测试性,对没有可测试性

(转)写让别人能读懂的代码

随着软件行业的不断发展,历史遗留的程序越来越多,代码的维护成本越来越大,甚至大于开发成本.而新功能的开发又常常依赖于旧代码,阅读旧代码所花费的时间几乎要大于写新功能的代码. 我前几天看了一本书,书中有这么一句话: “复杂的代码往往都是新手所写,只有经验老道的高手才能写出简单,富有表现力的代码” 此话虽然说的有点夸张,可是也说明了经验的重要性. 我们所写的代码除了让机器执行外,还需要别人来阅读.所以我们要写: 让别人能读懂的代码 可扩展的代码 可测试的代码(代码应该具备可测试性,对没有可测试性的代

接手别人的代码,死的心有吗?

团队里的程序员张三丰要离职,领导让你接手他的工作,叮嘱你一定要尽快掌握张三丰的代码.你的心儿扑通扑通地跳动,你的脑海里萦绕着三个选择:是拒绝呢,还是拒绝呢,还是拒绝呢?你强颜欢笑但实际上心烦意乱怨气纵横--接手别人的代码,那可是程序员要面对的最痛苦最可怕的事啊. 你记起江湖前辈黄药师说过的一句话:如果你恨他,就让他去接手别人的代码. 你的内心是拒绝的,可是你却不由自主地说出了"可以啊"三个字,于是你悲催的旅程拉开了序幕. 这,就是程序员的工作啊~~~~你有什么办法--你特别担心自己会被

读懂IL代码就这么简单(一)

一前言 感谢 @冰麟轻武 指出文章的错误之处,现已更正 对于IL代码没了解之前总感觉很神奇,初一看完全不知所云,只听高手们说,了解IL代码你能更加清楚的知道你的代码是如何运行相互调用的,此言一出不明觉厉. 然后开始接触IL,了解了一段时后才发现原来读懂IL代码并不难.进入正题   1.1  什么是IL IL是.NET框架中中间语言(Intermediate Language)的缩写.使用.NET框架提供的编译器可以直接将源程序编译为.exe或.dll文件,但此时编译出来的程序代码并不是CPU能直

如何通过阅读别人的代码提高自己的编程能力

代码阅读的必要性 阅读别人的代码作为研发人员是一件经常要做的事情.一个是学习新的编程语言的时候通过阅读别人的代码是个最佳的学习方法,另外是积累编程经验.如果你有机 会阅读一些操作系统的代码会帮助你理解一些基本的原理.更有就是在你作为一个质量确保人员或一个小领导的时候如果你要做白盒测试的时候没有阅读代码的能力 是不能完成相应的任务.最后一个就是如果你中途接手一个项目的时候或给一个项目做售后服务的时候是要有阅读代码的能力的. 收集所有可能收集的材料阅 读代码要做的第一件事情是收集所有和项目相关的资料

如何阅读修改别人的代码?

如何阅读别人的代码? 读代码的时间总是比写代码的时间更长 维护升级老代码或者同事突然离职交接, 读代码是必不可少的过程. 不夸张的说,可能没有人觉的读代码比写代码轻松. 但这又是工作中不得不面对的场景. 如果已有代码可以运行,那便跑起来看看 看看需求,知道这段代码干了什么事情,如果能够理解业务就更好了 看看数据库表结构.结合需求 一定会有数据,运行时候的数据对比数据库的数据更容易理解逻辑 看看已有的设计文档.更业务逻辑对应 根据功能分类一个一个的读代码吧 如何在已有基础上进行再次开发? 再次开发

如何阅读别人的代码

############################################## """ 阅读什么样的代码? 很难明确的说应该阅读什么样的代码,只能说有一些基本的原则: 1,阅读那些你用得着的代码 这一步最好从阅读那些你已经在使用的插件或者库文件开始. 这些都是你可以学习的非常好的例子.你已熟悉了它们的公共API,了解它们内部工作原理的障碍是较低的.此外,作为代码的用户,你有机会添加文档.实现新的功能,或者通常以某种方式给项目做贡献. 2,阅读那些你印象深刻的代码

log下一次改别人的代码

有次接到个PM要改版一个功能的UI设计,前端童鞋还没敲定页面的时候,我先看了看这个功能的后台,我擦...简直是惨不忍睹..对PM来说是改版UI,对我这么有点代码洁癖的来说就是优化代码. 首先我能肯定的是,原来这个童鞋对面向对象理解的不太好..其次对代码的整合不够...我就简单log下.. 先说面向对象理解的问题,在一个入口方法里,去调用该类自己的私有方法,这里传参的时候竟然把类属性的值都传过去了..当时我就汗了,,显然在被调用的方法里,直接就可以获取这些类属性的值了..为什么还要去传呢... 再