博文
更改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;
c......
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<<"......
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)......
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;
}......