11 2012 档案

摘要:5.1声明指针变量int *intptr;char *charptr;int m=50,*intptr;intptr=&m;//&是取地址符号数组名arr是arr[0]地址的指针常量,*arr == arr[0];int *pp = arr;// p[1] = *(p+1) =arr[1]p++使p向前移动一个数组位置,语句p--使p向后移动一个数组位置。类似的表达式用于arr是无效的,因为arr是指针常量,不能被更新。ptr->f()是(*ptr).f()的速记形式5.2当一条源代码语句声明变量或对象时,编译器创建一些信息,来指定变量或对象所占有内存量。编译过程会创建可 阅读全文
posted @ 2012-11-28 11:48 茉莉花茶 阅读(1087) 评论(0) 推荐(0)
摘要:4.1STL容器类的3个种类:顺序容器、适配器容器、关联容器。顺序容器按照线性次序位置存储数据,关联容器按照存储元素,如名字、社会保险编号,程序通过键访问关联容器中的元素,这些键可能与元素在容器中的位置无关。适配器包含另一个容器作为其基本存储结构,然而,适配器向程序员提供的接口仅仅是底层存储结构操作的一个受限子集。4.2模板类template <typename T>class templateClass{ public: templateClass(const T& item); //构造函数,带有类型T参数 T f(); //成... 阅读全文
posted @ 2012-11-27 14:07 茉莉花茶 阅读(1059) 评论(0) 推荐(1)
摘要:3.1选择排序算法算法从位置0开始,判断表中最小元素的下标。一旦找到最小元素,就把这个元素与arr[0]的内容进行交换。这一步把最小的元素放在arr[0]中,而表中的其他元素则处于无序状态。接着移动到位置1,判断子表arr[1] ... arr[n-1]中最小元素的位置,完成交换后,前两个位置的元素是有序的,接着对位置2到n-2重复这个过程。在位置n-1处不进行选择,这是因为arr[n-1]是最大的元素。选择排序算法包括n-1次重复操作,即n-1遍,因为每次操作都遍历子表的元素,并找出最小元素的下标。void selectionSort(int arr[], int n){ int sm... 阅读全文
posted @ 2012-11-26 19:07 茉莉花茶 阅读(1175) 评论(1) 推荐(1)
摘要:2.1需求:客户需要软件系统解决问题。计算机业的咨询者进行项目的可行性研究。分析:系统分析员分析系统需求,并创建系统的功能定义,其中包括了一系列的需求和特定的要求。设计:软件工程师将功能定义转换成系统的抽象模型。工程师标识出系统组件,并开发实现算法。实现:程序员实用设计规范和语言的功能,来为不同的系统组件编辑代码。测试:负责设计、实现程序的人员进行检查,以确认程序解决的问题正式客户需要的,并且正确的解决了该问题,测试过程寻找并确定逻辑错误和运行错误,同时确认系统是否满足客户的需求。黑箱测试法注重问题的输入和输出行为,而不关心类和函数的内部结构。白箱测试法注重程序的内部结构,这种测试要求数据运用 阅读全文
posted @ 2012-11-26 17:04 茉莉花茶 阅读(235) 评论(0) 推荐(0)
摘要:复习题1.(a)指出对象和类的区别?类是描述数据封装和数据操作的模板,而对象是类的特殊实例5.当不能修改对象时,为什么要通过常量引用传递程序员自定义的对象?使用常量引用传递,可以避免按值传递时的数据成员的复制。如果声明引用形参,将传递参数的地址,而不是参数的副本。这个地址用于访问实参,实际上形参的别名。(我的看法)仅传递地址,效率增加,常量设置,参数为只读,防止数值更改。7.什么是私有成员函数?从哪个代码块可以调用这种函数?为什么要使用私有成员函数?私有成员函数时在类的private部分声明的成员函数。它只能被其他类成员函数调用。私有成员函数是用于实现其他类成员函数的实用函数。创建这种函数简化 阅读全文
posted @ 2012-11-18 15:04 茉莉花茶 阅读(229) 评论(0) 推荐(0)
摘要:1.2Abstract Date Type ---- ADTADT操作描述操作名称:指定输入参数、数据结构元素的操作类型和输出值的动作语句前提条件:输入参数必须满足的条件以及使操作成功执行的对象状态后置条件:操作操作引起的数据结构中数据的变化(如果操作没有前提和后置条件,ADT操作描述将忽略这些条件)例:time24 ADTaddTime(m):通过增加m分钟来更新当前时间,并将小时和分钟调整到指定范围。后置条件:新时间是增加m分钟之后的值。1.3C++类class className{ public: //公共成员函数原型 ...... pri... 阅读全文
posted @ 2012-11-18 13:39 茉莉花茶 阅读(260) 评论(0) 推荐(0)
摘要:#include<iostream>using namespace std;int main(){ int n,f[40],m; f[1]=1;f[2]=3; for(int i=3;i<=40;i++) { f[i]=f[i-1]+2*f[i-2]; } cin>>n; for(int j=0;j<n;j++) { cin>>m; cout<<f[m]<<endl; } return 0;} 阅读全文
posted @ 2012-11-10 01:08 茉莉花茶 阅读(131) 评论(0) 推荐(0)
摘要:#include<iostream>using namespace std;int main(){ int n,f[60]; f[0]=1;f[1]=2;f[2]=3;f[3]=4; for(int i=4;i<=60;i++) { f[i]=f[i-1]+f[i-3]; } while(cin>>n) { if(n==0) break; cout<<f[n-1]<<endl; } return 0;}3年内的幼崽不能生,其余都是翻倍 阅读全文
posted @ 2012-11-09 22:58 茉莉花茶 阅读(351) 评论(0) 推荐(0)
摘要:#include <iostream>using namespace std;int main() { long long n,a[60]; a[1]=1;a[2]=2; for(int j=3;j<=60;j++) { a[j] = a[j-1]+a[j-2]; } while(cin>>n) { cout<<a[n]<<endl; } return 0;}居然又是Fibonacci Sequence。。。。。。。这果然是个神奇的公式2×(n-2)之后的部分按这样考虑,及可得出f[i]=f[i-1]+f[i-2] 阅读全文
posted @ 2012-11-08 21:08 茉莉花茶 阅读(205) 评论(0) 推荐(0)
摘要:#include <iostream>using namespace std;int main() { long long n,f[60]; f[1]=3;f[2]=6;f[3]=6; for(int i=4;i<=60;i++) f[i]=2*f[i-2]+f[i-1]; while(cin>>n) { cout<<f[n]<<endl; } return 0;}静心思考。。。考虑为5个空格R P G P GR P R G P P G这两种可能(及4个空格下满足的情况)后面都只能再跟一种可能,正好等于f[4]R P... 阅读全文
posted @ 2012-11-08 20:13 茉莉花茶 阅读(264) 评论(0) 推荐(0)
摘要:#include <iostream>using namespace std;int main() { long long m,a,b,f[60]; cin>>m; f[1]=1;f[2]=2; for(int i=3;i<60;i++) { f[i]=f[i-1]+f[i-2]; } for(int i=0;i<m;i++) { cin>>a>>b; cout<<f[b-a]<<endl; } return 0;}自信满满的一交,就wa了,结果居然是long long 的原因。。。。要牢记... 阅读全文
posted @ 2012-11-08 19:17 茉莉花茶 阅读(116) 评论(0) 推荐(0)
摘要:#include <iostream>using namespace std;int main() { int m,n,a[40]; cin>>m; for(int i=0;i<m;i++) { cin>>n; a[n+1]=3; for(int j=n;j>0;j--) { a[j]=2*(a[j+1]-1); } cout<<a[1]<<endl; } return 0;}简单dp,学习YY思维 阅读全文
posted @ 2012-11-08 18:59 茉莉花茶 阅读(117) 评论(0) 推荐(0)
摘要:#include <iostream>using namespace std;int main() { int m,n,a[50]; a[1]=1;a[2]=2; for(int j=3;j<=50;j++) { a[j] = a[j-1]+a[j-2]; } cin>>m; for(int i=0;i<m;i++) { cin>>n; cout<<a[n-1]<<endl; } return 0;}及其简单的dp,先打表节约时间。 阅读全文
posted @ 2012-11-08 18:42 茉莉花茶 阅读(129) 评论(0) 推荐(0)
摘要:#include <iostream>using namespace std;int main() { int a,b,c=1; while(cin>>a>>b) { if(a==0&&b==0) break; for(int i=0;i<b;i++) { c=a*c; if(c>999) c=c%1000; } cout<<c<<endl; c=1; } return 0;}简单题啊。。。。。。。结果我硬把这题当1042写了。。。可惜w... 阅读全文
posted @ 2012-11-07 19:57 茉莉花茶 阅读(148) 评论(0) 推荐(0)
摘要:本文根据经典的TC教程完善和改编。TopCoder:http://www.topcoder.com/基本规则TopCoder的比赛类型很多,最常见的是周赛SRM(Single Round Match),另外还有TCHS SRM(TopCoder High School SRM,题目和SRM一样,仅限中学生参加,参赛者水平较低,据说涨rating很容易),马拉松(Marathon Matchs),还有TCOpen(每年两次的大比赛)之类的比赛。因为大多数人都在做SRM,所以本文介绍的TC比赛即为SRM。SRM的规则总结起来就是一句话:75分钟做完3道难度递增的题。TC的每个用户(handle)都 阅读全文
posted @ 2012-11-07 12:54 茉莉花茶 阅读(260) 评论(0) 推荐(0)
摘要:#include <iostream>#include<string>using namespace std;int main() { string str; int p,m,d,day,y; int month[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; while(cin>>str) { p=0;y=0; int length =str.size(); for(int i=0;i <length;i++) { if(str[i+1]=='/'... 阅读全文
posted @ 2012-11-06 21:01 茉莉花茶 阅读(211) 评论(0) 推荐(0)
摘要:#include <iostream>using namespace std;int main() { char a,b,c,t1,t2,t3; while(cin>>a>>b>>c) { if(c<min(a,b)) t1=c; else { t1=min(a,b); if(a>b) t2=a; else t2=b; } if(c>max(a,b)) t3=c; else ... 阅读全文
posted @ 2012-11-06 18:54 茉莉花茶 阅读(249) 评论(0) 推荐(0)
摘要:#include <iostream>#include<cmath> #include <iomanip>using namespace std;int main() { float x1,x2,y1,y2,count; while(cin >> x1>>y1>>x2>> y2) { count = sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); cout <<setprecision(2) << setiosflags(ios::fixed | ios:: 阅读全文
posted @ 2012-11-06 14:59 茉莉花茶 阅读(150) 评论(0) 推荐(0)