• hpu第六次周赛Problem F



     

    Problem F

    Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other)
    Total Submission(s) : 54   Accepted Submission(s) : 6

    Font: Times New Roman | Verdana | Georgia

    Font Size:

    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

    /*
    1.  '.'有且只能有3个 
    2.  每个数字应该:1~255(含边界) 
    3.  不能有特殊字符 
    */
    #include <stdio.h>
    #include <string.h>
    
    int main()
    {
        char s[100];
        while(gets(s))
        {
            int i,j,sum=0,count=0,t=0;
            int len;
            len=strlen(s);
            for(i=0;i<len;i++)
            {
                if((s[i]>='0'&&s[i]<='9')||s[i]=='.')
                continue;
                else
                break;
            }
            if(i>=len)
            {
                sum=0;
                for(j=0;j<len;j++)
                {
                    if(s[j]!='.')
                    {
                    count++;
                    sum=sum*10+(s[j]-'0');
                    }
                    else
                    {
                        t++;
                        if((sum<=255&&sum>=0)&&(count>=1&&count<=3))
                        {sum=0;count=0;}
                        else
                        break;
                    }
                }
                if(j>=len&&t==3&&(sum<=255&&sum>=0))
                printf("YES
    ");
                else
                printf("NO
    ");
            }
            else
            printf("NO
    ");
        }
        return 0;
    }
  • 相关阅读:
    c++ 面试注意的问题
    非root用户 gcc安装
    爱挑剔的acm程序员 acmer
    Add Digits
    Rectangle Area
    Contains Duplicate III 下标范围<=k 值范围<=t
    ruby第一次实践 ”hello world“
    判断一个 int 向量里是否有相同的数 并且距离在k之内 (2)
    判断一个 int 向量里是否有相同的数(1)
    字符串同构
  • 原文地址:https://www.cnblogs.com/xl1027515989/p/3366549.html
Copyright © 2020-2023  润新知