问题 F: 签到题

时间限制: 1 Sec  内存限制: 128 MB
提交: 80  解决: 28

题目描述

在计算机网络考试中, 黑帅男神看到一个将IP网络分类的题, 精通C++的他瞬间写出了几行代码成功解决了这个问题

请解析IP地址和对应的掩码,进行分类识别。要求按照A/B/C/D/E类地址归类.

现在假设将所有的IP地址划分为 A,B,C,D,E五类

A类地址1.0.0.0~126.255.255.255;

B类地址128.0.0.0~191.255.255.255;

C类地址192.0.0.0~223.255.255.255;

D类地址224.0.0.0~239.255.255.255;

E类地址240.0.0.0~255.255.255.255

请对输入的IP地址进行分类

输入

多组,第一行是一个T(T<=100000)
接下来T行,每行一个ip地址(不保证正确)

输出

在上面5类中则输出对应类型
不属于上述类型或IP错误则输出”nope”(不含引号)

样例输入

2
222.195.8.207
127.0.0.1

样例输出

C
nope
 
这题的思路很明确,就是:
1.以“.”为分界,读取ip地址的每位一个段;
2.然后首先判断是否是在1~225的范围内,然后判断前后有没有那些倒灶的字符串导致其根本不符合IP地址的标准;
3.然后有一个小点,就是第一个字段的127不属于任何范围。
 
实现需要的一些小技巧:sscanf
sscanf的功能很强大,使用必须要哟有<stdio.h>头文件,然后要和c++兼容的话我有头文件<cstdio.h>这样就可以在C++的环境下使用这个函数了。
sscanf功能的参考博文:http://blog.csdn.net/jackyvan/article/details/5349724
附上代码:
#include <iostream>
#include<math.h>
#include <iomanip>
#include<cstdio>
#include<string>
#include<map>
#include<vector>
#include<list>
#include<algorithm>
#include<stdlib.h>
#include<iterator>
#include<sstream>
#include<string.h>
#include<stdio.h>
using namespace std; int main()
{
int n;
cin>>n;
int a,b,c,d;
char ip[]={};
char s[]={};
while(n--)
{
a=-;
b=-;
c=-;
d=-;
cin>>ip; sscanf(ip,"%d.%d.%d.%d%s",&a,&b,&c,&d,s);//sscanf读取每个字段,1以“.”为分界
//而且最大的好处是可以把字符串转化为int型的数组 那是甚好的。
if(s[]!=||a> || a< || b> || b< ||c> || c< ||d> || d< )
{
cout<<"nope"<<endl;//第一组,判断就是判断是否每个字段都在 1~225的范围内
continue;//不在 直接去下一个数
}
else if(a>=&&a<=)//根据第一组的数据判断是否在A组
{
cout<<"A"<<endl;
continue;
}
else if(a>=&&a<=)//根据第一分段判断是否在B组
{
cout<<"B"<<endl;
continue;
}
else if(a>=&&a<=)//判断是否在第C组
{
cout<<"C"<<endl;
continue;
}
else if(a>=&&a<=)//判断是否在D组
{
cout<<"D"<<endl;
continue;
}
else if(a>=&&a<=)//判断是否在E组
{
cout<<"E"<<endl;
continue;
}
else
{
cout<<"nope"<<endl;//最后就是在1~225的范围内 第一个字段不符合要求的那些数字的排除
continue;
} }
return ;
}
 
 

2016-2017学年第三次测试赛 问题 F: 签到题的更多相关文章

  1. 2016-2017学年第三次测试赛 习题E 林喵喵算术

    时间限制: 1 Sec  内存限制: 128 MB 提交: 70  解决: 25 提交统计讨论版 题目描述 给你两个八进制数,你需要在八进制计数法的情况下计算a-b. 如果结果为负数,你应该使用负号代 ...

  2. 2016-2017学年第三次测试赛 习题H MCC的考验

    问题 H: MCC的考验 时间限制: 1 Sec  内存限制: 128 MB 题目描述 MCC男神听说新一期的选拔赛要开始了,给各位小伙伴们带来了一道送分题,如果你做不出来,MCC会很伤心的. 给定一 ...

  3. 2018.10.2浪在ACM 集训队第三次测试赛

    2018.10.26 浪在ACM 集训队第三次测试赛 今天是暴力场吗???????可怕 题目一览表 来源 考察知识点 完成时间 A 1275 珠心算测试 NOIP 普及组 2014 暴力??? 201 ...

  4. 2018.11.2浪在ACM集训队第三次测试赛

    2018.11.2 浪在ACM 集训队第三次测试赛 整理人:孔晓霞 A 珠心算测试 参考博客:[1]李继朋  B 比例简化 参考博客: [1]李继朋 C 螺旋矩阵 参考博客:[1]朱远迪 D 子矩阵 ...

  5. 2017.8.2 Noip2018模拟测试赛(十八)

     日期: 八月二日  总分: 300分  难度: 提高 ~ 省选  得分: 40分(又炸蛋了!!) 题目列表: T1:分手是祝愿 T2:残缺的字符串 T3:树点涂色 赛后心得: 哎,T1求期望,放弃. ...

  6. 2017.8.1 Noip2018模拟测试赛(十七)

    日期: 八月第一天  总分: 300分  难度: 提高 ~ 省选    得分: 100分(不应该啊!) 题目目录: T1:战争调度 T2:选数 T3:由乃的OJ 赛后心得: MMP,首先第一题花了大概 ...

  7. 8.30 牛客OI赛制测试赛1 F题 子序列

    题目描述 给出一个长度为n的序列,你需要计算出所有长度为k的子序列中,除最大最小数之外所有数的乘积相乘的结果 输入描述: 第一行一个整数T,表示数据组数.对于每组数据,第一行两个整数N,k,含义如题所 ...

  8. [牛客OI测试赛2]F假的数学游戏(斯特灵公式)

    题意 输入一个整数X,求一个整数N,使得N!恰好大于$X^X$. Sol 考试的时候只会$O(n)$求$N!$的前缀和啊. 不过最后的结论挺好玩的 $n! \approx \sqrt{2 \pi n} ...

  9. 2016 ACM/ICPC亚洲区青岛站现场赛(部分题解)

    摘要 本文主要列举并求解了2016 ACM/ICPC亚洲区青岛站现场赛的部分真题,着重介绍了各个题目的解题思路,结合详细的AC代码,意在熟悉青岛赛区的出题策略,以备战2018青岛站现场赛. HDU 5 ...

随机推荐

  1. zabbix_agentd无法启动,cannot open log 错误

    最近有一台服务器的zabbix启动异常,看日志有如下报错 zabbix_agentd []: cannot open log: cannot create semaphore ] No space l ...

  2. D. Lunar New Year and a Wander bfs+优先队列

    D. Lunar New Year and a Wander bfs+优先队列 题意 给出一个图,从1点开始走,每个点至少要经过一次(可以很多次),每次经过一个没有走过的点就把他加到走过点序列中,问最 ...

  3. DockerFile执行报错解决

    错误1: “docker build” requires exactly 1 argument.原因: 之前的命令是这样的: docker build -t nbCentos:1.0.0 , 不仔细看 ...

  4. 百炼OJ - 1004 - 财务管理

    题目链接:http://bailian.openjudge.cn/practice/1004/ 思路 求和取平均... #include <stdio.h> int main() { fl ...

  5. 使用python实现冒泡、选择、插入基础排序

    冒泡排序 依次比较相邻两元素,若前一元素大于后一元素则交换之,直至最后一个元素即为最大: 然后重新从首元素开始重复同样的操作,直至倒数第二个元素即为次大元素: 依次类推.如同水中的气泡,依次将最大或最 ...

  6. Django Auth组件->扩展用户

    Auth用户 1.声明用户表 djangauth/settings.py..............................AUTH_USER_MODEL = 'app01.UserInfo' ...

  7. 《深入理解Java虚拟机》读书笔记八

    第九章 类加载及执行子系统的案例与实战 Q:如果有10个WEB应用程序都是用Spring来进行组织管理的话,可以把Spring放到Common或Shared目录下(Tomcat5.0)让这些程序共享. ...

  8. 后台用map接收数据,报类型转换错误

    如果后台用接收接收前台传的数据时,因为不确定具体是哪一种类型而报错,可以使用  instanceOf if (dataMap.get("salePrice") instanceof ...

  9. expect 脚本

    实现远程执行 /home/dataexa/test/proxy.expect touch proxy.expect #!/usr/bin/expect set timeout 30 spawn ssh ...

  10. MYSQL的索引类型:PRIMARY, INDEX,UNIQUE,FULLTEXT,SPAIAL 区别与使用场合

    normal 普通索引   unique 唯一的,不允许重复的索引 该字段信息保证不会重复例如身份证号用作索引时,可设置为unique full textl 全文搜索的索引 FULLTEXT 用于搜索 ...