博文

选择排序+折半查找(2005-09-14 18:05:00)

摘要:#include<iostream>using namespace std;const int size=16;void taxis(int score[],int num){          //选择排序 for(int i=0;i<num-1;i++) {  int min=i;  for(int j=i+1;j<num;j++)   if(score[j]<score[min])    min=j;  int temp=score[i];  score[i]=score[min];  score[min]=temp; }}int Res(int score[],int num,int lookup){          //折半查找 int lo=0,  mid,  hi=num-1,  ans=-1; for(;hi-lo>1;) {  mid=(hi-lo)/2+lo;  if(score[mid]==lookup)   ans=mid;  if(score[mid]>lookup)   hi=mid;  else   lo=mid; } if(ans==-1) {  if(score[hi]==lookup)   ans=hi;  if(score[lo]==lookup)   ans=lo; }  return ans;}v......

阅读全文(3340) | 评论:1

另类fib数列(2005-09-10 20:50:00)

摘要:#include<iostream> #include<iomanip> using namespace std; int fib(int&a,int&b,int n){     int temp=a;     a=b;b=temp+b;     return b; } int fib(int n){ int a=0; int b=1; for(int i=0;i<n-3;i++) fib(a,b,i); return fib(a,b,i); } void main() {     int a=0,b=1;     cout<<setw(6)<<a<<setw(6)<<b;     for(int i=2;i<20;i++)     {         if(i%5==0)cout<<endl;         cout<<setw(6)<<fib(a,b,i)<<setw(6);     }     cout<<endl;     int n;     cin>>n;     cout<<fib(n); } 利用函数重载,第一个演示打印输出,第2个调用第一个函数演示查找......

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

待改良电话卡(2005-09-10 20:39:00)

摘要:#include<iostream>              #include<string> #include<vector> using namespace std; struct phone_book{     string name;     int number;      }; vector<phone_book>phone_books;      bool accept() {         cout<<"Do you want to proceed(y or n)?\n";         char answer=0;         cin>>answer;         switch(answer){         case'y':return true;         case'n':return false;         default:             cout<<"I'll take that for a no.\n";  &n......

阅读全文(3170) | 评论:2

另类最大公约数,最小公倍数(2005-09-10 20:32:00)

摘要:#include<iostream> using namespace std; void main(){     int a,b,c,d;     cin>>a>>b;     c=(a>b)?a:b;     for(int i=c;i>0;i--)         if((!(a%i))&&(!(b%i)))break;     d=(a*b)/i;     cout<<"最大公约数"<<i<<'\n'<<"最小公倍数"<<d<<endl; } 目前关于此问题的通常解法就是碾转相除+递归。     ......

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

词典排序问题(2005-09-10 20:28:00)

摘要:#include<iostream> #include<string> #include<vector> using namespace std; void main(){     vector<string>p;     for(;;)           //连续输入string对象,直到输入一个字母end     {     string str;     cin>>str;     if(str.size()==1)break;     p.push_back(str);     }     bool state;        //冒泡排序,将string对象按词典顺序排序     for(int i=0;i<p.size();i++){         state=true;         for(int j=p.size()-1;j>i;j--){             if(p[j].substr(0,1)<p[j-1].substr(0,1)){               &......

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