博文

数据结构--搬砖问题:今有36块砖,36人搬,男搬4,女搬3,两个小孩抬一砖,要(2007-03-18 11:42:00)

摘要:  设计一个对下列问题的求解算法,并给出该算法的时间 复杂度和空间复杂度     今有36块砖,36人搬,男搬4,女搬3,两个小孩抬一砖,要求一次搬完,问男女小孩各需若干      提示:用穷举法求满足方程的解: 4.0*m+3.0*w+0.5*c=36.0   //源程序如下.如有不妥之处不要见怪.呵呵!!! #include<iostream.h>#include<iomanip.h>void main(){ int m,w,c; cout<<"    男    女    小孩"<<endl; for(m=0;m<=8;m++)  for(w=0;w<=11;w++){   c=36-m-w;   if((4.0*m+3.0*w+0.5*c==36.0   )&&(c%3==0))    cout<<setw(6)<<m<<setw(10)<<w<<setw(10)<<c<<endl;  }}      另一种方法: #include <iostream.h> Bz(int x,int y,float z ,float w )    { int w,m,c;       for ( m=0;m<9;m++)       for( w=0;w<12;w++)           {   c=36-m......

阅读全文(6744) | 评论:0

古代数学家张丘建在它所撰定的《算经》中,提出这样一个问题(2007-03-17 15:36:00)

摘要:  一、公元5世纪末,我国古代数学家张丘建在它所撰定的《算经》中,提出这样一个问题:“鸡翁一,值钱五;鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问鸡翁、母、雏各几何?”意思是说公鸡每只5元,母鸡每只3元,小鸡3只1元,用100元钱买100只鸡,求公鸡、母鸡、小鸡的只数。试设计算法求解该问题,并分析你的算法的时间复杂度。   #include<iostream.h>#include<iomanip.h>void main(){ int i,j,k; cout<<"     公鸡    母鸡     小鸡"<<endl; for(i=0;i<=20;i++)  for(j=0;j<33;j++){   k=100-i-j;   if((5*i+3*j+k/3==100)&&(k%3==0))    cout<<setw(6)<<i<<setw(10)<<j<<setw(10)<<k<<endl;  }}......

阅读全文(3535) | 评论:0

心灵火花——好的算法应该是精益求精(2007-03-15 21:45:00)

摘要:  心灵火花——好的算法应该是精益求精    1. 把一个具n个元素的数组向左循环移动i个位置的算法设计成具有较好的时间和空间性能。例如abcdefgh向左循环移动3个位置后为defghabc        提示可能三种算法    第一种算法思想: 1步 首先建立一个具有i个元数的临时数组b[i] 2步 将原数组a[n]中的前i个存在临时数组b[i]中 3步 将原数组a[n]中余下的n-I个元往前移i个位置 4步 将临时数组b[i]的元素复制回原数组的后面  算法分析:       该算法使用i个额外的存储空间,使得空间性能降低,也就是以空间换得较小的时间,所以它不是最佳算法   第二种算法思想     1步 首先设计一个函数将数组向左循移动一个位置     2步 调用该算法i 次 算法分析:          该算法由于不开辟临时存储空间,空间性能很好,     但算法的时间性能差,用时间换空间   第三种算法思想      要在有限的资源中解决这个问题似乎很困难,现在 换一个角度看这个问题,把它看作是数组ab转换成 ba ,其中a就代表数组的前i个元素,b代表数中n-i个元 素,这样问题转换成:      a′b→a′b′→(a′b′)′=( b′)′(a′)′=ba 例如把abcdefgh→defghabc 1步  设计一个逆向函数Reversse(intA[ ],int pos,int len) 2步 Reversse(A,0,i-1)→cbadefgh   2步 Reversse(A, i,  n-1);→cbahgfed   ......

阅读全文(2906) | 评论:3

继承(2007-01-14 15:05:00)

摘要:1.派生类不能访问其基类的private成员,否则会破坏基类的封装性.但是派生类能够访问基类的public成员和proected成员.2.调用析构函数的次序和调用构造函数的次序相反,因此派生类析构函数在基类函数析构函数之前调用.3.指向派生类对象的指针可以隐式地转换为指向基类对象的指针.4.对于一个派生类对象,先调用基类的构造函数,然后调用派生类的构造函数.5.不适合派生类的基类成员可以在派生类中重新定义.6.从publiC基类派生一个类时,基类的public和protected成员都成为派生类的protected成员.从private基类派生一个类时,基类的public和protected成员均成为派生类的private成员.......

阅读全文(1865) | 评论:0

火箭VS国王   NBA(2007-01-14 14:24:00)

摘要:......

阅读全文(1658) | 评论:0

火箭VS国王 NBA(2007-01-14 14:23:00)

摘要:......

阅读全文(1734) | 评论:0

火箭VS国王 NBA(2007-01-14 14:23:00)

摘要:......

阅读全文(1535) | 评论:0

火箭VS国王 NBA(2007-01-14 14:22:00)

摘要:......

阅读全文(1655) | 评论:0

新年愉快!(2007-01-01 15:18:00)

摘要:......

阅读全文(1292) | 评论:0

有关指针(2006-12-28 21:47:00)

摘要:1.c++用三种方式向函数传递数值:按值调用(call-by-value)\用引用参数按用调用(call-by-rdference reference argument)和用指针参数按引用(call-by-reference pointer argument).2.函数参数使用或不用const限定符的可能性有六种,两种用按值调用传递参数,四种按引用调传递参数,根据最低权限原则来进行选择.3.将指针传递给函数有四种方法:非常量数据的非常量指针\常量数据的非常量指针\非常量数据的常理指针和常量数据的常理指针.4.非常量数据的常量指针总是指向相同的内存地址,该地址中的数据可以通过指针修改.5.声明为const的指针不在声明时初始化是个语法错误.6.sizeof是个运算符而不是个函数.......

阅读全文(2002) | 评论:0