博文
更改blog地址为blog.csdn.net/weiren2006(2009-01-06 22:41:00)
摘要:以后此blog不再更新,更多文章见blog.csdn.net/weiren2006......
获取主机名和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; char FAR * FAR * h_addr_list;};
其中, char *h_name 表示的是主机的规范名。例如 www......
map的使用(2007-08-31 18:17:00)
摘要:当我们遇到字符串与整数的映射关系时,用map使用很方便,所以我就整理了一些关于map的使用方法:1、map的头文件是map.h2、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<<" age:"<<it->second<<endl; //显示各元素的值,first为string的内容,second为int的内容}最后输出为name:zhangsan age:20name:lisi ......
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的函数值y3、三次样条插值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)......
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;
}......
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;
}
......
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;
}......
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;
}......
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;
}......
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;
}......
