题目链接:IP Checking - LightOJ 1354 - Virtual Judge
题意:给你两个ip地址,一个是十进制表示的,另一个是二进制表示的,现在问你两个ip地址是否一样
这个比较简单,就是考察一个进制转换,每个ip地址都有四个整数表示,读入的时候我们最好用scanf格式化读入,我们只需要依次比较四个二进制数和十进制数是否都相等即可。
下面是代码:
#include<cstdio>
#include<iostream>
#include<cstring>
#include<vector>
#include<algorithm>
#include<map>
#include<cmath>
#include<queue>
using namespace std;
int change(int x)//将二进制的x转化为十进制
{
int ans=0;
for(int i=0;;i++)
{
if(x&1) ans+=1<<i;
x/=10;
if(!x) return ans;
}
}
int main()
{
int T;
cin>>T;
int a1,a2,a3,a4,b1,b2,b3,b4;
for(int _=1;_<=T;_++)
{
printf("Case %d: ",_);
scanf("%d.%d.%d.%d",&a1,&a2,&a3,&a4);
scanf("%d.%d.%d.%d",&b1,&b2,&b3,&b4);
if(a1!=change(b1)||a2!=change(b2)||a3!=change(b3)||a4!=change(b4)) puts("No");
else puts("Yes");
}
return 0;
}