博文

更改blog地址为blog.csdn.net/weiren2006(2009-01-06 22:41:00)

摘要:以后此blog不再更新,更多文章见blog.csdn.net/weiren2006......

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

获取主机名和IP地址(2007-09-01 15:49:00)

摘要:    使用gethostname和gethostbyname这两个winsock库函数实现获得主机名和IP地址,其中Gethostname获得主机名,Gethostbyname获得主机地址。
这两个函数的原型为:
int gethostname (
  char FAR * name, 
  int namelen      
);
获得主机名
char FAR * name          指针变量,存放主机名的数组
int namelen              字符串长度 struct hostent FAR * gethostbyname (
  const char FAR * name 
);
通过主机名获取主机地址,此函数返回hostent结构体变量
const char FAR * name    就是主机名 hostent结构体
struct hostent {
    char FAR *       h_name;
    char FAR * FAR * h_aliases;
    short            h_addrtype;
    short            h_length;
    c......

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

map的使用(2007-08-31 18:17:00)

摘要:当我们遇到字符串与整数的映射关系时,用map使用很方便,所以我就整理了一些关于map的使用方法:
1、map的头文件是map.h
2、map的定义
   如map<string,int>word,这样就定义了map的字符串到整数的对象word(就对象名),也可以定义整数到字符串的对象,具体看什么情况。注意定义时不能用char*。
具体例子如下:
map<string,int>age;  //定义姓名到年龄的映射
age["zhangsan"]=20;
age["lisi"]=21;
下面介绍map的一些函数:
1、clear()
就是清除map对象的所有内容
如age.clear();这样就清楚了age的内容
2、erase(key)
删除key对应的元素
如age.erase("lisi");就删除了lisi的信息
3、size()
获取对象的元素个数
如n=age.size();则n=2(上面定义了2个元素);
4、begin()
获取对象的第一个元素的指针
5、end()
获取对象的最后一个元素的指针
6、find(key)
查找key对应的元素

typedef   map<string,int>maps;
maps age;
maps::iterator it;
it=age.find("wangwu");
如果找到"wangwu"的元素,就返回它所对应的元素指针,否则就指向end();
7、元素的访问或遍历举例
typedef   map<string,int>maps;
maps age;
age["zhangsan"]=20;
age["lisi"]=21;
maps::iterator it;
for(it=age.begin();it!=age.end();it++)
{
    cout<<"name:"<<it->first<<"......

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

matlab的几个插值函数(2007-08-28 12:17:00)

摘要:已知向量x,y,通过x,y求出向量xi的插值的值
1、分段线性插值
yi=interp1(x,y,xi)或
yi=interp1(x,y,'linear')
2、多项式插值
多项式为y=p(1)*x+p(2)*x^2+...+p(n)*x^n,则可以用
p=polyfit(x,y,n),(n是多项式的最高次数)求出系数向量p,
然后用y=polyval(p,xi)求出向量xi的函数值y
3、三次样条插值
yi=interp1(x,y,xi,'spline')
或yi=spline(x,y,xi)
或pp=interp1(x,y,'spline','pp'),然后pp=spline(x,y)-->yi=ppval(pp,xi)
4、分段三次埃尔米特
yi=interp1(x,y,xi,'pchip')
或yi=pchip(x,y,xi)
或pp=interp1(x,y,'pchip','pp')  pp=pchip(x,y)-->yi=pppval(pp.xi)......

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

pku1218(2007-08-18 20:20:00)

摘要:#include<iostream> using namespace std; int main() { int sum,n,i,j,k,T; bool lock[101]; cin>>T; while(T--) { while(cin>>n) { sum=0; memset(lock,false,sizeof(lock)); for(i=1;i<=n;i++) { k=i; for(j=2;k<=n;j++) { lock[k]=!lock[k]; k=i*j; } sum+=lock[i]; } cout<<sum<<endl; } } return 0; }......

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

pku2696(2007-08-18 20:20:00)

摘要:#include<iostream> using namespace std; int main() { int a[9],f[1000],n,i; cin>>n; while(n--) { for(i=0;i<9;i++) cin>>a[i]; f[0]=a[0];f[1]=a[1];f[2]=a[2]; for(i=3;i<=a[8];i++) { if(i%2) { f[i]=(a[3]*f[i-1]+a[4]*f[i-2]-a[5]*f[i-3])%a[6]; if(f[i]<0) f[i]+=a[6]; } else { f[i]=(a[5]*f[i-1]-a[3]*f[i-2]+a[4]*f[i-3])%a[7]; if(f[i]<0) f[i]+=a[7]; } } cout<<f[a[8]]<<endl; } return 0; } ......

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

pku2608(2007-08-18 20:19:00)

摘要:#include<iostream> using namespace std; int main() { int i,k,l; char ch[21]; while(cin>>ch) { int a[26]={0,1,2,3,0,1,2, 0,0,2,2,4,5,5, 0,1,2,6,2,3, 0,1,0,2,0,2}; k=ch[0]-'A'; if(a[k]) cout<<a[k]; i=1; while(ch[i]!='\0') { k=ch[i]-'A'; l=ch[i-1]-'A'; if(a[k]&&(a[k]!=a[l])) { cout<<a[k]; } i++; } cout<<endl; } return 0; }......

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

pku1579(2007-08-18 20:19:00)

摘要:#include<iostream> using namespace std; int main() { int a,b,c,w[21][21][21],i,j,k,m; for(i=0;i<21;i++) for(j=0;j<21;j++) for(k=0;k<21;k++) { if(i==0||j==0||k==0) w[i][j][k]=1; else if(i<j&&j<k) w[i][j][k]=w[i][j][k-1]+w[i][j-1][k-1]-w[i][j-1][k]; else w[i][j][k]=w[i-1][j][k]+w[i-1][j-1][k]+w[i-1][j][k-1]-w[i-1][j-1][k-1]; } while(cin>>a>>b>>c) { if(a==-1&&b==-1&&c==-1) break; if(a<=0||b<=0||c<=0) m=1; else if(a>20||b>20||c>20) m=w[20][20][20]; else m=w[a][b][c]; printf("w(%d, %d, %d) = %d\n",a,b,c,m); } return 0; }......

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

pku2140(2007-08-18 20:18:00)

摘要:#include<iostream> #include<cmath> using namespace std; int main() { int n,k,i,sum; while(cin>>n) { sum=0; k=sqrt(2*n); if(k*(k+1)/2<n) k++; for(i=1;i<=k;i++) { if((n-i*(i-1)/2)%i==0) sum++; } cout<<sum<<endl; } return 0; }......

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

pku2196(2007-08-18 20:17:00)

摘要:#include<iostream> using namespace std; int main() { int duodecimal[]={1728,144,12,1},hexadecimal[]={4096,256,16,1},decimal[]={1000,100,10,1}, i,j,m10,m12,m16,n1,n2,n3; for(i=2992;i<9999;i++) { m10=m12=m16=0; n1=n2=n3=i; for(j=0;j<4;j++) { m10+=n1/decimal[j]; m12+=n2/duodecimal[j]; m16+=n3/hexadecimal[j]; n1=n1%decimal[j]; n2=n2%duodecimal[j]; n3=n3%hexadecimal[j]; } if(m10==m12&&m10==m16) cout<<i<<endl; } return 0; }......

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