博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nyoj-630-Problem of IP
阅读量:4300 次
发布时间:2019-05-27

本文共 1067 字,大约阅读时间需要 3 分钟。

#include<stdio.h>
#include<string.h>
char a[35];
int b[8]={1,2,4,8,16,32,64,128};
int c1[8],c2[8],c3[8],c4[8];
int main()
{
int n,t,t1,t2,t3,t4,i;
while(scanf("%s",a)!=EOF)
{
t=t1=t2=t3=t4=0;
n=strlen(a);
if(n==32)
{
for(i=0;i<n;i++)
if(i<=7)
t1+=(a[i]-48)*b[7-i];
else if(i<=15)
t2+=(a[i]-48)*b[15-i];
else if(i<=23)
t3+=(a[i]-48)*b[23-i];
else
t4+=(a[i]-48)*b[31-i];
printf("%d.%d.%d.%d\n",t1,t2,t3,t4);
}
else 
{
memset(c1,0 ,sizeof(c1));
memset(c2,0 ,sizeof(c2));
memset(c3,0 ,sizeof(c3));
memset(c4,0 ,sizeof(c4));
for(i=0;i<n;i++)
{
if(a[i]=='.')
t++;
if(a[i]!='.'&&t==0)
t1=t1*10+a[i]-48;
else if(a[i]!='.'&&t==1)
t2=t2*10+a[i]-48;
else if(a[i]!='.'&&t==2)
t3=t3*10+a[i]-48;
else if(a[i]!='.'&&t==3)
t4=t4*10+a[i]-48;
}
i=0;
while(t1)
{
c1[i++]=t1%2;
t1/=2;
}
i=0;
while(t2)
{
c2[i++]=t2%2;
t2/=2;
}
i=0;
while(t3)
{
c3[i++]=t3%2;
t3/=2;
}
i=0;
while(t4)
{
c4[i++]=t4%2;
t4/=2;
}
for(i=7;i>=0;i--)
printf("%d",c1[i]);
for(i=7;i>=0;i--)
printf("%d",c2[i]);
for(i=7;i>=0;i--)
printf("%d",c3[i]);
for(i=7;i>=0;i--)
printf("%d",c4[i]);
printf("\n");
}
}
return 0;
}

转载地址:http://trvws.baihongyu.com/

你可能感兴趣的文章
href="javascript:void(0)"
查看>>
h:panelGrid、h:panelGroup标签学习
查看>>
f:facet标签 的用法
查看>>
<h:panelgroup>相当于span元素
查看>>
java中append()的方法
查看>>
必学高级SQL语句
查看>>
经典SQL语句大全
查看>>
Eclipse快捷键 10个最有用的快捷键
查看>>
log日志记录是什么
查看>>
<rich:modelPanel>标签的使用
查看>>
<h:commandLink>和<h:inputLink>的区别
查看>>
<a4j:keeyAlive>的英文介绍
查看>>
关于list对象的转化问题
查看>>
VOPO对象介绍
查看>>
suse创建的虚拟机,修改ip地址
查看>>
linux的挂载的问题,重启后就挂载就没有了
查看>>
docker原始镜像启动容器并创建Apache服务器实现反向代理
查看>>
docker容器秒死的解决办法
查看>>
管理网&业务网的一些笔记
查看>>
openstack报错解决一
查看>>