c#程序阅读分析
using System;
using System.Collections.Generic;
using System.Text;
namespace FindTheNumber
{
class Program
{
static void Main(string[] args)
{
int [] rg =
{,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,};
for (Int64 i = ; i < Int64.MaxValue; i++)
{
int hit = ;
int hit1 = -;
int hit2 = -;
for (int j = ; (j < rg.Length) && (hit <=) ; j++)
{
if ((i % rg[j]) != )
{
hit++;
if (hit == )
{
hit1 = j;
}
else if (hit == )
{
hit2 = j;
}
else
break;
}
}
if ((hit == )&& (hit1+==hit2))
{
Console.WriteLine("found {0}", i);
}
}
}
}
}
阅读下面程序,请回答如下问题:
问题1:这个程序要找的是符合什么条件的数?
问题2:这样的数存在么?符合这一条件的最小的数是什么?
问题3:在电脑上运行这一程序,你估计多长时间才能输出第一个结果?时间精确到分钟(电脑:单核CPU 4.0G Hz,内存和硬盘等资源充足)。
问题4:在多核电脑上如何提高这一程序的运行效率?
(注:该程序、用C#语言编写,但是只要有C语言基础完全没有阅读压力,如果对部分语句不懂请自行查询)
答1:找到的数同时满足:1 不可以被2~31中连续连续两个数整除
2 可以被其他28个数整除
答2:存在这样的数,最小为16,17,其余剩下28个数的最小公倍数。结果为 2123581660200。
答3:内外两层循环,所以复杂度为内层平均工作量和外层工作量的乘积。考虑到单核4GHz的计算速度。输出第一个结果时间为8406min。
答4:多核的计算机可以优化程序,使程序可以同时试验N个数,这样速度可以提高N倍;
改进算法,好的算法事半功倍。
c#程序阅读分析的更多相关文章
- [原创]推荐一款强大的.NET程序内存分析工具.NET Memory Profiler
[原创]推荐一款强大的.NET程序内存分析工具.NET Memory Profiler 1 官方网站:http://memprofiler.com/2 下载地址:http://memprofiler. ...
- VS2010/MFC编程入门之四(MFC应用程序框架分析)
VS2010/MFC编程入门之四(MFC应用程序框架分析)-软件开发-鸡啄米 http://www.jizhuomi.com/software/145.html 上一讲鸡啄米讲的是VS2010应用 ...
- 服务器程序源代码分析之三:gunicorn
服务器程序源代码分析之三:gunicorn 时间:2014-05-09 11:33:54 类别:网站架构 访问: 641 次 gunicorn是一个python web 服务部署工具,类似flup,完 ...
- 开源GUI-Microwindows之程序入口分析
**************************************************************************************************** ...
- C语言面试程序阅读整理
一.数组和指针 1.数组和指针的存储 写出下面的输出结果: char str1[] = "abc"; char str2[] = "abc"; const ch ...
- 通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
秦鼎涛 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验一 通过汇编一个简单的C程序,分析汇编代码 ...
- 通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
实验一:通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的 学号:20135114 姓名:王朝宪 注: 原创作品转载请注明出处 <Linux内核分析>MOOC课程http: ...
- 01-Coredump核心转存&&Linux程序地址分析【转】
转自:http://www.itwendao.com/article/detail/404132.html 目录(?)[-] 一Core Dump核心转存 二Linux程序地址分析 一Core Dum ...
- 程序阅读:简单C++学生信息管理系统
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 [程序阅读]阅读并执行以下的程序,找出当中出现 ...
随机推荐
- splay专题复习——bzoj 3224 & 1862 & 1503 题解
[前言]快要省选二试了.上次去被虐出翔了~~这次即便是打酱油.也要打出风採! 于是暂停新东西的学习,然后開始复习曾经的知识.为骗分做准备.PS:区间翻转的临时跳过,就算学了也来不及巩固了. [BZOJ ...
- Linux版的Mimikaz
A tool to dump the login password from the current linux desktop user. Adapted from the idea behind ...
- git回答整理
1.git常用命令 首先明确:git有工作区.暂存区.版本库,工作区是电脑里能看到的目录 创建仓库: git init newrepo,使用我们指定目录作为Git仓库(初始化后,会在newrepo目录 ...
- Kubernetes1.91(K8s)安装部署过程(五)--安装flannel网络插件
node节点需要安装flannel网络插件才能保证所有的pod在一个局域网内通信,直接使用yum安装即可,版本是0.7.1. 1.安装flannel插件: 注意是2个node节点都需要安装,都需要修改 ...
- input全选与单选(把相应的value放入隐藏域去)
框架是Jquery 需求是: 页面上有很多复选框,1.当我选择一项复选框时候 把对应的值放入到隐藏域去 2.当我反选的时候 把隐藏域对应的值删掉.3.当我全选的时候 页面上所有的选择框的值一起放到隐藏 ...
- Python2.7-argparse
argparse模块,用于方便地编写用户友好的命令行接口,可以自动生成帮助信息,用法信息和错误处理 1.模块对象 1.1 ArgumentParser 对象 1.1.1 初始化构建类:Argument ...
- spring amqp初步了解
Rabbitmq简介 生产者会把消息发送给RabbitMQ的交换中心(Exchange),Exchange的一侧是生产者,另一侧则是一个或多个队列,由Exchange决定一条消息的生命周期--发送给某 ...
- 重写Override和重加载Overload
1.方法的重写规则 参数列表必须完全与被重写方法的相同: 返回类型必须完全与被重写方法的返回类型相同: 访问权限不能比父类中被重写的方法的访问权限更低.例如:如果父类的一个方法被声明为public,那 ...
- Android 给CheckBox设置背景
一般来说我们给控件(Button,LinearLayout,ImageView,TextView等)设这背景的时候只需要设置这些控件的android:background即可, 但是在给CheckBo ...
- ASP HUOSHAN VIDEO
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...