IP的计算

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 7479    Accepted Submission(s): 1457
Problem Description
在网络课程上,我学到了非常多有关IP的知识。IP全称叫网际协议,有时我们又用IP来指代我们的IP网络地址,如今IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分。每一个部分为8位,表示成一个无符号整数(因此不须要用正号出现),如192.168.100.16,是我们非常熟悉的IP地址。一个IP地址串中没有空格出现(由于要表示成一个32数字)。

可是粗心的我,经常将IP地址写错,如今须要你用程序来推断。

 
Input
输入有多个case,每一个case有一行。不超过100个字符。

 
Output
对于每一个case。推断输入的IP是否正确,假设正确输入YES。否则NO。
 
Sample Input
192.168.100.16
 
Sample Output
YES

合法的IP必然满足下面:

1、字符仅仅包括0-9和‘.’。

2、有且仅仅有3个‘.’;

3、每格数字最多3位且不超过255;

4、两个‘.’不能连在一起;

5、第一个字符不是‘.’.

#include <stdio.h>
char str[102];
int ok; int check(char ch){
if(ch >= '0' && ch <= '9') return 1;
if(ch == '.') return 2;
return 0;
} int main(){
int dot, dignum, a, dotsum;
while(gets(str)){
dotsum = a = dot = dignum = 0;
for(int i = 0; str[i]; ++i){
ok = check(str[i]);
if(!ok) break;
if(ok == 1){
dot = 0;
++dignum;
a = a * 10 + str[i] - '0';
if(dignum > 3 || a > 255){
ok = 0; break;
}
}else{
dignum = a = 0;
++dot; ++dotsum;
if(dot > 1 || dotsum > 3){
ok = 0; break;
}
}
}
if(str[0] == '.' || dot || dotsum != 3) ok = 0;
printf(ok ? "YES\n" : "NO\n");
}
return 0;
}

HDU2206 IP的计算 【经典题】的更多相关文章

  1. hdu 1251:统计难题(字典树,经典题)

    统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others)Total Submi ...

  2. hdu 1541/poj 2352:Stars(树状数组,经典题)

    Stars Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  3. POJ 1811 Prime Test( Pollard-rho整数分解经典题 )

    链接:传送门 题意:输入 n ,判断 n 是否为素数,如果是合数输出 n 的最素因子 思路:Pollard-rho经典题 /************************************** ...

  4. poj 1611:The Suspects(并查集,经典题)

    The Suspects Time Limit: 1000MS   Memory Limit: 20000K Total Submissions: 21472   Accepted: 10393 De ...

  5. Hihicoder 题目1 : Trie树(字典树,经典题)

    题目1 : Trie树 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编 ...

  6. poj 3264:Balanced Lineup(线段树,经典题)

    Balanced Lineup Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 32820   Accepted: 15447 ...

  7. poj 2503:Babelfish(字典树,经典题,字典翻译)

    Babelfish Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 30816   Accepted: 13283 Descr ...

  8. poj 2001:Shortest Prefixes(字典树,经典题,求最短唯一前缀)

    Shortest Prefixes Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 12731   Accepted: 544 ...

  9. hdu 1247:Hat’s Words(字典树,经典题)

    Hat’s Words Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

随机推荐

  1. mysql 建立加密连接

    加密连接可提高数据的安全性,但会降低性能.要进行加密连接,必须满足以下要求: user权限表里要有相关的SSL数据列.如果安装的MySQL服务器是4.0.0版的,user权限表已包含相关的SSL数据列 ...

  2. 内核与ramdisk到底是什么关系

    转自:http://www.lupaworld.com/forum.php?mod=viewthread&tid=61425 原名:内核与ramdisk到底是什么关系? 个人Notes:    ...

  3. Java基本类型与包装类

    存储方式及位置的不同,基本类型是直接存储变量的值保存在堆栈中能高效的存取,封装类型需要通过引用指向实例,具体的实例保存在堆中   Java语言提供了八种基本类型.六种数字类型(四个整数型,两个浮点型) ...

  4. CentOS6.7 用户

    1.添加普通用户[root@server ~]# useradd chenjiafa   //添加一个名为chenjiafa的用户[root@server ~]# passwd chenjiafa   ...

  5. JavaWeb三大组件(Servlet,Filter,Listener 自己整理,初学者可以借鉴一下)

    JavaWeb三大组件(Servlet,Filter,Listener 自己整理,初学者可以借鉴一下) Reference

  6. Qt之信号连接,你Out了吗?

    在遇到多信号问题的时候,你是否经常会连接多个槽函数呢?如果你的答案是绝对的,那么你已经Out很久了.多信号连接多个槽,实现不同的槽就在潜意识的加大程序的开销!那么为什么不去链接同一个槽呢?     今 ...

  7. 15--Box2D使用(一、创建物理世界)

    创建工程Box2DTest,去掉背景和精灵对象等.首先在HelloWorldScene.h头文件定义一个屏幕像素与物理世界长度转换宏,并引入box2D头文件 #define PIXEL_TO_METE ...

  8. Canvas -画图

    2014-09-30 09:14:57 <!doctype html> <html> <head> <title> </title> < ...

  9. 重写Collections实现自定义排序

    Collections.sort(List<Object>, new Comparator<Object>() { public int compare(Object o1, ...

  10. HTML&CSS基础学习笔记1.20-DIV标签2

    <span>标签 标签div把文档分割为独立的.不同的部分,而在HTML中,<span>标签则被用来组合文档中的行内元素. 看个实例: <!DOCTYPE html> ...