博文
选择排序+折半查找(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......
另类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个调用第一个函数演示查找......
待改良电话卡(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......
另类最大公约数,最小公倍数(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;
}
目前关于此问题的通常解法就是碾转相除+递归。
......
词典排序问题(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)){
&......
