精华内容
下载资源
问答
  • 在CSDN上读过这样一篇文章,“仅有10%的专业程序员能把这个小程序写的完全正确”,这里的小程序,其实指的是一个二分查找。书中的一原话: 例3.4 Bently【1986】要求超过100个专业程序员把下面有关二分法的...

      在CSDN上读过这样一篇文章,“仅有10%的专业程序员能把这个小程序写的完全正确”,这里的小程序,其实指的是一个二分查找。
    书中的一段原话:
    例3.4       Bently【1986】要求超过100个专业程序员把下面这段有关二分法的简要描述“写成一个程序,语言由他们自己选择.............
    他报告说,“我感到非常惊讶,给了他们充足的时间,仅有10%的专业程序员能把这个小程序写的完全正确”。

    我们要确定在一个已经排好序的数组X[1...N]中是否包含元素T。二分法解决问题的方法是维持数组中可能包含T的区域的踪迹(如果元素T确实在数组中的某处)。在开始的区域就是整个数组,通过将元素T与数组的中间元素比较可以缩小范围,丢掉数组的一半。这个过程一直继续T被找到,或者是T可能存在的范围变空。

    Berntley提出了如下建议:“绝大多数程序员都认为,只要手头上有了上面这段有
    关二分法的描述,写出代码是一件很容易得事。然而他们错了。如果你现在就把这篇文章放在一边,亲自动手写代码试一试。你就会相信这一点。”

      我也觉得有些不可思议,于是动手尝试了一下,C# 控制台程序,有一个输入数据源的过程,3个小时(文中提到的是两个小时的时间),我才把这个程序写的完全正确。:(。本以为自己是可以在两个小时内完成的。唉....

      自我解嘲一下,如果我能够再集中些注意力,或者在精神状态好的情况下或许是能够在规定时间内完成的,但想更快,自问也是困难的。

      不过这让我想起了另外一些事情,程序员究竟能干多少事情?

      在一个系统里有很多的算法,二叉查找这样的算法,代码难度和数量恐怕都是比较低的。(周末晚上尝试写的程序大概100多行的样子)对比这个,2个小时完成一个二叉查找,那么6个小时完成一个其他算法。大概完成200多行代码。如果再用两个小时进行测试,和系统整合。(或许这个工作2个小时是远远不够的,正常我觉得应该是4个小时,就算是加班了吧)一个很专业的程序员,一天的工作量也就是200行。20天 × 200行 = 4000行代码。我不知道在这个上面应该打多少折扣,但我知道这个工作效率算是太高了。

    我也不知道大家的系统最后的代码量有多少。我做游戏,大概一个成品的代码也就是5千行~3万行之间。一个团队,4-8个月(或许更长时间)才能够出一个测试版本。开发的情况各异,团队各异,可能也不好说。不过我还是觉得能有一个可比性,我们仍然按6个小时完成一个算法。在做开发的时候,大致会构建一个架构,或许更多的架构复合,但总之不会太复杂,我想不会多于3个架构复合,在架构的基础上划分若干模块,这也不会太复杂,应该也不会超过10个模块,在每个模块下会继续划分功能,这里或许多些,算20个吧,功能下继续划分....

    如果这样算 1× 10 × 20 × 5 = 1000个算法,当然这里面的算法会有的简单,有的复杂。这个时候,就可以参考上面的小时数来大致考虑开发进度了,也可以给程序员分配任务了。

    当然,所有的一切,都建立在你的团队都是那 10%的专业程序员的基础上的。我知道你想笑了。引用一句话:运用之妙,存乎一心。

    转载于:https://www.cnblogs.com/GameCode/archive/2010/06/07/1753225.html

    展开全文
  • 算法程序框图基本算法语句同步练习 模拟试题 1下面对算法描述正确的一项是 A. 算法只能用自然语言来描述 B. 算法只能用图形方式来表示 C. 同一问题可以有不同的算法 D. 同一问题的算法不同结果必然不同 2用二分法求...
  • PAGE PAGE 4 算法与程序框图同步练习题 一选择题每小题5分共30分 1下面对算法描述正确的一项是 A算法只能用自然语言来描述 B算法只能用图形方式来表示 C同一问题可以有不同的算法 D同一问题的算法不同结果必然不同 2...
  • windows 程序设计

    2012-03-07 15:25:21
    具有Windows 98程序写作经验Windows程序写作者会Windows 1.0程序的原始码感觉非常熟悉。API改变一种方式是进行增强。Windows 1.0支持不到450个函数呼叫,现在已有了上千种函数呼叫。 Windows API和它语法...
  • 模拟电梯系统程序设计

    热门讨论 2010-07-12 17:28:06
    这一类模拟仿真程序有一个共同特点是要模拟某个系统在一时间内情况,所以我们很自然地要从时间上该问题进行分解,就是说 Simulation() { Initialize;{初始化过程} do Lift_status();{计算电梯状态在...
  • (2) 用哪两组数据就可以使程序段每个分支都运行一次?这种情形与上面讨论有何不同?如果为了找出程序中积压分支中错误,应该使用什么样数据程序进行测试?请上机验证自己结论。 (3)用哪两组数据就...
  • 19. 设 i、j、k 为类 x 中定义的 int 型变量名,下列类 x 的构造函数中不正确的是( )。 A) x( int m){ ... } B) void x( int m){ ... } C) x( int m, int n){ ... } D) x( int h,int m,int n){ ... } 20. 下列方法...
  • 用“地址”这个概念并不能很好地描述一种数据类型或数据结构, 而“指针”虽然实际上也是一个地址,但它却是一个数据结构首地址, 它是“指向”一个数据结构,因而概念更为清楚,表示更为明确。 这也是引入...
  • 27.下面是有关子类继承父类构造函数的描述,其中正确的是( )。 A) 创建子类的对象时,先调用子类自己的构造函数,然后调用父类的构造函数。 B) 子类无条件地继承父类不含参数的构造函数。 C) 子类必须通过super...
  • 本篇文章更多的是描述架构与技术方向层面的思考和决策,不会过多介绍具体某个问题是如何解决的,因为细节实在太多。 <h2>1. 单线程 当时的我将我们的小程序定位成一个SPA(单页应用)&#...
  • 我将在下面大概介绍。 if, else, elseif, if(): endif if (表达式一) { . . . } elseif (表达式二) { . . . } else { . . . } // 或者像Python一样 if (表达式一) : . . . . . . elseif (表达式二) : . . . else :...
  • 9、下列有关数据库的描述正确的是()。 A、数据库是一个DBF文件 B、数据库是一个关系 C、数据库是一个结构化的数据集合 D、数据库是一组文件 我的答案:C 10、下列说法中,不属于数据模型所描述的内容的是...
  • 处女座测验(二)

    2019-01-24 22:33:46
    【题目描述】 现在处女座顺利完成了测验,处女座想要知道知道自己输出...更具体,处女座想知道下面程序段的答案 int main() { int n; cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; int a...

    【题目描述】

    现在处女座顺利的完成了测验,处女座想要知道知道自己输出的结果是否正确。他希望知道自己有自己输出的数中有多少对是不满足要求的。

    更具体的,处女座想知道下面程序段的答案

    int main()
    {
        int n;
        cin>>n;
        for(int i=1;i<=n;i++)
            cin>>a[i];
        int ans=0;
        for(int i=1;i<=n;i++)
            for(int j=i+1;j<=n;j++)
                if(τ(a[i]∗a[j])≤10)
                    ans=ans+1;
        cout<<ans<<endl;
        return 0;
    }

    其中为 n 的因子的个数

    【输入描述】

    两行

    第一行一个整数n

    第二行n个整数,a1,a2,…,an

    2<=n<=2000, 1<=ai<=3*10^8

    【输出描述】

    一行,一个整数ans

    【样例】

    示例1

    输入
    7
    34 45 23 12 63 23 90
    输出
    3

    【备注】

    不保证任意两个整数互质

    思路:

    先打素数表,然后用 vector 存储每个数的素因子以及素因子的幂数,最后用 map 存储 x*y 的素因子的最高次数用题目给的公式求出 ? 即可

    要注意的是,如果两个数中有个数的 ? 大于 10,那么需要剪枝

    【源代码】

    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    #include<string>
    #include<cstring>
    #include<cmath>
    #include<ctime>
    #include<algorithm>
    #include<utility>
    #include<stack>
    #include<queue>
    #include<vector>
    #include<set>
    #include<map>
    #define PI acos(-1.0)
    #define E 1e-6
    #define MOD 1000000007
    #define INF 0x3f3f3f3f
    #define N 100001
    #define LL long long
    using namespace std;
    int a[N];
    int prime[N],cnt;
    bool bprime[N];
    vector<int> power[N];//幂数
    vector<int> num[N];//素因子
    void make_prime()
    {
    	memset(bprime,true,sizeof(bprime));
    	bprime[0]=false;
    	bprime[1]=false;
    
        for(int i=2;i<=N;i++)
        {
            if(bprime[i])
            {
                prime[cnt++]=i;
                for(int j=i*2;j<=N;j+=i)
                    bprime[j]=false;
            }
        }
    }
    int main(){
        make_prime();
    
        int n;
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            scanf("%d",&a[i]);
    
            if(a[i]==1){//数为1的情况
                power[i].push_back(1);
                num[i].push_back(1);
            }
            else{
                for(int j=0;prime[j]*prime[j]<=a[i];j++){//枚举a[i]的素因子
                    if(a[i]%prime[j]==0){
                        num[i].push_back(prime[j]);//记录素因子
    
                        int cnt=0;
                        while(a[i]%prime[j]==0){
                            cnt++;
                            a[i]/=prime[j];
                        }
    
                        power[i].push_back(cnt);//记录幂数
                    }
                }
                //考虑a[i]自身
                if(a[i]!=1){
                    num[i].push_back(a[i]);
                    power[i].push_back(1);
                }
            }
        }
    
        int res=0;
        for(int i=1;i<=n;i++){
            for(int j=i+1;j<=n;j++){
                map<int,int> mp;//存储x*y素因子的最高次数
                for(int k=0;k<num[i].size();k++)
                    mp[num[i][k]]+=power[i][k];
    
                for(int k=0;k<num[j].size();k++)
                    mp[num[j][k]]+=power[j][k];
    
                int t=1;
                map<int,int>::iterator it;
                for(it=mp.begin();it!=mp.end();it++)
                    t=t*(it->second+1);
    
                if(t<=10)//剪枝,不考虑t大于10的数
                    res++;
    
            }
        }
        printf("%d\n",res);
        
        return 0;
    }

     

    展开全文
  • 本文纯属个人见解,是前面学习的总结,如有描述正确的地方还请高手指正~ /* *【项目3】在下面类的定义中,自行车类的虚基类为车辆类,机动车类的虚基类也为车辆类,摩托车类的基类为自行车类和机动车类,...

    本文纯属个人见解,是对前面学习的总结,如有描述不正确的地方还请高手指正~

    /*
    *【项目3】在下面一段类的定义中,自行车类的虚基类为车辆类,机动车类的虚基类也为车辆类,摩托车类的基类为自行车类和机动车类,类之间均为公有继承。
    * 程序的版权和版本声明部分
    * Copyright (c)2012, 烟台大学计算机学院学生
    * All rightsreserved.
    * 文件名称: object.cpp
    * 攻城菜鸟:蛋蛋
    * 完成日期:2013年  5 月  25 日
    * 版本号:  Code Blocks10.05
    * 输入描述:车行驶记录数据
    * 问题描述:要求:
    (1)根据下面各类间关系的描述,补全下面程序段中空白的代码
    (2)实现程序中声明的成员函数,注意响应操纵中的动作产生的条件不能满意时应给出提示。
    (3)运行程序,享受开摩托的进程。(请下载资源中一个可执行文件,可以先运行再编程。不必请求驾照,这个摩托车很安全。)
    (4)在报告中回答问题:本题中使用虚基类的好处是什么?
    * 程序输出:车的行驶日记
    */
    #include <iostream>
    #include<conio.h>
    #include <windows.h>
    using namespace std;
    enum vehicleStaus {rest, running};  //车辆状态:泊车、前进
    class vehicle //车辆类
    {
    protected:
    	int maxSpeed;		//最大车速
    	int currentSpeed;	//当前速度
    	int weight;			//车重
    	vehicleStaus status; //rest-泊车状态;running-前进状态
    public:
    	vehicle(int maxS, int w):maxSpeed(maxS),weight(w),currentSpeed(0),status(rest){} //构造函数,初始时,当前速度总为0且处在泊车状态
    	void start(){if(currentSpeed==0){status=running;currentSpeed=1;}}  //由rest状态到running, 初速为1
    	void stop(){if(currentSpeed<5){currentSpeed=0;status=rest;}else cout<<"车速大,不答应泊车"<<endl;} //由running状态到rest, 当前速度小于5时,才答应泊车
    	void speed_up(){if(status==running&¤tSpeed>=0)currentSpeed+=1;else cout<<"wrong operation"<<endl;}  //减速,调用1次,速度加1
    	void slow_down(){if(status==running&¤tSpeed>=0)currentSpeed-=1;else cout<<"wrong operation"<<endl;} //减速,调用1次,速度减1,速度为0时,泊车
    };
    class bicycle :virtual public vehicle//(1)自行车类的虚基类为车辆类
    {
    protected:
    	double height; //车高
    public:
    	bicycle(int maxS=10, int w=50, int h=0.7):vehicle(maxS,w),height(h){}   //定义构造函数
    };
    
    class motorcar : virtual public vehicle//(2)机动车类的虚基类也为车辆类
    {
    protected:
    	int seatNum; //座位数
    	int passengerNum; //搭客人数
    public:
    	motorcar(int maxS=150, int w=1500, int s=5, int p=1):vehicle(maxS,w),seatNum(s),passengerNum(p){}   //定义构造函数
    	void addPassenger(int p=1){if(currentSpeed==0&&p+passengerNum<=seatNum&&p+passengerNum>=1) passengerNum+=p;else if(currentSpeed>=5)cout<<"车速过大,没法泊车 "<<endl;else cout<<"车已满员或司机师傅,您不能下车"<<endl;}  //增加搭载的搭客,超员要拒载,有人下车时,p为正数。当然车上搭客至少有1个(司机)。只有车停稳后才能上下客。
    };
    
    
    class motorcycle: public bicycle,public motorcar //(3)摩托车类的基类为自行车类和机动车类
    {
    public:
    	//定义构造函数
    	motorcycle(int maxS=90, int w=100, int s=3, int p=1, int h=0.7):vehicle(maxS,w),bicycle(maxS,w,h),motorcar(maxS,w,s,p){}
    	void show(){if(status==rest)cout<<"泊车"<<endl;else  cout<<"行驶"<<endl;
    	cout<<"当前时速"<<currentSpeed<<endl;
    	cout<<"最大时速"<<maxSpeed<<endl;
    	cout<<"搭客人数"<<passengerNum<<endl;
    	cout<<"座位数"<<seatNum<<endl;
    		}//表现摩托车的运行状态
    };
    
    
    int main( )
    {
    	motorcycle m;
    	bool end=false;
    	while (!end){
    		cout<<"请操纵:1-启动  2-减速  3-减速  4-有人上车  5-有人下车  6-泊车 0-结束"<<endl;
    		char keydown= _getch(); //_getch()返回键盘上读取的字符
    		switch(keydown)
    		{
    		case '1':
    			cout<<"操纵(启动)\t"; m.start(); break;
    		case '2':
    			cout<<"操纵(减速)\t"; m.speed_up(); break;
    		case '3':
    			cout<<"操纵(减速)\t"; m.slow_down(); break;
    		case '4':
    			cout<<"操纵(有人上车)\t"; m.addPassenger(); break;
    		case '5':
    			cout<<"操纵(有人下车)\t"; m.addPassenger(-1); break;
    		case '6':
    			cout<<"操纵(泊车)\t"; m.stop(); break;
    		case '0':
    			end=true; break;
    		}
    		m.show();
    		cout<<endl;
    		Sleep(200);  //要包含头文件<windows.h>
    	}
    	return 0;
    }
        每日一道理
    古人云:“海纳百川,有容乃大。”人世间,不可能没有矛盾和争吵,我们要以磊落的胸怀和宽容的微笑去面对它 。哈伯德也曾说过:“宽恕和受宽恕的难以言喻的快乐,是连神明都会为之羡慕的极大乐事。”让我们从宽容中享受快乐,从谅解中体会幸福吧!

        类和虚基类

        类和虚基类

        类和虚基类

    文章结束给大家分享下程序员的一些笑话语录: 问答
    Q:你是怎么区分一个内向的程序员和一个外向的程序员的? A:外向的程序员会看着你的鞋和你说话时。
    Q:为什么程序员不能区分万圣节和圣诞节? A:这是因为 Oct 31 == Dec 25!(八进制的 31==十进制的 25)

    --------------------------------- 原创文章 By
    类和虚基类
    ---------------------------------

    转载于:https://www.cnblogs.com/xinyuyuanm/archive/2013/05/26/3100561.html

    展开全文
  • 你必须知道495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    不同编译器给出不同的i值,有的为3,有的为4,哪个是正确的? *3.4 有这样一个巧妙的表达式:a^=b^=a^=b;它不需要临时变量就可以交换a和b的值。 3.5 可否用显式括号来强制执行我所需要的计算顺序并控制相关的副...
  • 一选择题 1条件语句的描述正确的是( ) Aelse后面的语句不可以是条件语句 B两个条件语句可以共用一个end C条件语句可以没有else后的语句 D条件语句中if和else后的语句必须都有 [答案] C [解析] 如果作二次判断else...
  • 1、下列关于栈的叙述中正确的是(D)A. 在栈中只能插入数据 B. 在栈中只能删除数据C.... 编程调试3、建立良好的程序设计风格,下面描述正确的是(A)A. 程序应简单、清晰、可读性好 B. 符号名的命名要...

    1、下列关于栈的叙述中正确的是(D)

    A. 在栈中只能插入数据 B. 在栈中只能删除数据

    C. 栈是先进先出的线性表 D. 栈是先进后出的线性表

    2、在结构化方法中,软件功能分解属于下列软件开发中的阶段是(C) 注:总体设计也就是概要设计

    A. 详细设计 B. 需求分析 C. 总体设计 D. 编程调试

    3、对建立良好的程序设计风格,下面描述正确的是(A)

    A. 程序应简单、清晰、可读性好 B. 符号名的命名要符合语法

    C. 充分考虑程序的执行效率 D. 程序的注释可有可无

    4、数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是(A)

    A. 控制流 B. 加工 C. 数据存储 D. 源和潭

    5、下列关于栈的叙述中正确的是(D)

    A. 在栈中只能插入数据 B. 在栈中只能删除数据

    C. 栈是先进先出的线性表 D. 栈是先进后出的线性表

    6、在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送(D)

    A. 调用语句 B. 命令 C. 口令 D. 消息

    7、算法的空间复杂度是指(D)

    A. 算法程序的长度 B. 算法程序中的指令条数 C. 算法程序所占的存储空间 D. 算法执行过程中所需要的存储空间

    8、下列叙述中正确的是(A)

    A. 线性表是线性结构 B. 栈与队列是非线性结构

    C. 线性链表是非线性结构 D. 二叉树是线性结构

    9、设有下列二叉树:图见书P46

    对此二叉树中序遍历的结果为(B)

    A. ABCDEF B. DBEAFC C. ABDECF D. DEBFCA

    10、在软件开发中,下面任务不属于设计阶段的是(D)

    A. 数据结构设计 B. 给出系统模块结构

    C. 定义模块算法 D. 定义需求并建立系统模型

    11、下列关于栈的叙述中正确的是(D)

    A. 在栈中只能插入数据 B. 在栈中只能删除数据

    C. 栈是先进先出的线性表 D. 栈是先进后出的线性表

    12、算法的时间复杂度是指(C)

    A. 执行算法程序所需要的时间 B. 算法程序的长度 C. 算法执行过程中所需要的基本运算次数 D. 算法程序中的指令条数

    13、检查软件产品是否符合需求定义的过程称为(A)

    A. 确认测试 B. 集成测试 C. 验证测试 D. 验收测试

    14、对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为(B) 注:要牢记

    A. N+1 B. N C. (N+1)/2 D. N/2

    15、算法的空间复杂度是指(D)

    A. 算法程序的长度 B. 算法程序中的指令条数 C. 算法程序所占的存储空间 D. 算法执行过程中所需要的存储空间

    16、以下数据结构中不属于线性数据结构的是(C)

    A. 队列 B. 线性表 C. 二叉树 D. 栈

    17、数据库设计包括两个方面的设计内容,它们是(A)

    A. 概念设计和逻辑设计 B. 模式设计和内模式设计

    C. 内模式设计和物理设计 D. 结构特性设计

    展开全文
  • 需要掌握oSIP并熟读RFC文档才行,exoSIP不是我们最终学习目的),通过成功编译运行一个自己动手开发出的程序,再由浅入深应该是初学都最好学习方法通过使用exosip开发库使用创建自己SIP程序,...
  • 下面几条是我在学习过程中记录下来问题解决办法,或者是小知识点,给需要朋友分享学习。 安装USB虚拟COM口驱动时出现“INF中服务段落无效”,解决方法如下: 下载mdmcpq.inf和usbser.sys 将mdmcpq.inf复制到c...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 171
精华内容 68
关键字:

对下面程序段描述正确的是