zoukankan      html  css  js  c++  java
  • HDU2206:IP的计算

    Problem F

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

    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

    import java.util.Scanner;

    public class hdu1003 {

     public static void main(String[] args) {
      Scanner cin = new Scanner(System.in);

      while (cin.hasNext()) {
       String a = cin.nextLine();

       try {
        String[] arr;
        int flag = 0;
        int flag2 = 0;
        arr = a.split("\.");
        int p=0;
        for(int i=0;i<a.length();i++){  //查找.的次数
         if(a.charAt(i)=='.')
          p++;
        }
        if(arr.length==0||p!=3){    //如果数组为空时比如输入...后数组为空,或者如果.出现的次数不是三个的话,就结束了
         System.out.println("NO");
         continue;
        }
        int[] arr2 = new int[arr.length];
        
        for (int i = 0; i < arr.length; i++) {
         if ((arr[i].length() > 0) && (arr[i].length() <= 3)&&arr.length==4) {   //每一个数字段必须是在0~255之间,个数为1~3个
          arr2[i] = Integer.parseInt(arr[i]);
          if ((arr2[i] >= 0) && (arr2[i] < 256)) {   //判断数字是否在范围之内
           flag2 = 1;
          } else {
           flag2 = 0;
           break;
          }
         } else {
          flag2 = 0;
          break;
         }
        }

        for (int i = 0; i < arr.length; i++) {
         if (arr.length != 4 || flag2 == 0) {
          flag = 0;
          System.out.println("NO");
          break;
         }
         if ((arr2[i] >= 0) && (arr2[i] < 256)) {
          flag = 1;
         } else {
          flag = 0;
          System.out.println("NO");
          break;
         }
        }
        if (flag == 1) {
         System.out.println("YES");
        }
       } catch (Exception e) {
        System.out.println("NO");
       }

      }

     }
    }

    /*
     *
     * 考点:1、必须是只有3个.
     *   2、各个数字段必须是在0~255之间,个数为1~3个
     *   3、考虑非数字的情况
     *   4、考虑空的情况   ,  比如    ...
     *   

    *Problem F
    Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other)
    Total Submission(s) : 35   Accepted Submission(s) : 4
    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
    */


  • 相关阅读:
    舌尖上的中关村
    解决winform窗体闪烁问题
    24段魔尺,可以折出哪些精美图案(续)
    24段魔尺,可以折出哪些精美图案
    关于Python编程的一些问答
    BZOJ 1025: [SCOI2009]游戏
    BZOJ 1025: [SCOI2009]游戏
    BZOJ 1207: [HNOI2004]打鼹鼠
    BZOJ 1207: [HNOI2004]打鼹鼠
    BZOJ 1046: [HAOI2007]上升序列
  • 原文地址:https://www.cnblogs.com/qjack/p/3366567.html
Copyright © 2011-2022 走看看