• OpenJudge/Poj 2105 IP Address


    1.链接地址:

    http://poj.org/problem?id=2105

    http://bailian.openjudge.cn/practice/2105

    2.题目:

    IP Address
    Time Limit: 1000MS   Memory Limit: 30000K
    Total Submissions: 18146   Accepted: 10456

    Description

    Suppose you are reading byte streams from any device, representing IP addresses. Your task is to convert a 32 characters long sequence of '1s' and '0s' (bits) to a dotted decimal format. A dotted decimal format for an IP address is form by grouping 8 bits at a time and converting the binary representation to decimal representation. Any 8 bits is a valid part of an IP address. To convert binary numbers to decimal numbers remember that both are positional numerical systems, where the first 8 positions of the binary systems are:
    2
    7
       2
    6
      2
    5
      2
    4
      2
    3
       2
    2
      2
    1
      2
    0
     
    
    128 64 32 16 8 4 2 1

    Input

    The input will have a number N (1<=N<=9) in its first line representing the number of streams to convert. N lines will follow.

    Output

    The output must have N lines with a doted decimal IP address. A dotted decimal IP address is formed by grouping 8 bit at the time and converting the binary representation to decimal representation.

    Sample Input

    4
    00000000000000000000000000000000 
    00000011100000001111111111111111 
    11001011100001001110010110000000 
    01010000000100000000000000000001 

    Sample Output

    0.0.0.0
    3.128.255.255
    203.132.229.128
    80.16.0.1
    

    Source

    3.思路:

    4.代码:

     1 #include "stdio.h"
     2 #include "stdlib.h"
     3 
     4 int f(char input[],int start)
     5 {
     6     int ans=0;
     7     int i;
     8     for(i=0;i<8;i++)
     9     {
    10        ans=ans*2+(input[i+start]-'0');
    11     }
    12     return ans;
    13 }
    14 int main()
    15 {
    16     int a,b,c,d;
    17     int n;
    18     int i;
    19     char input[34];
    20     scanf("%d
    ",&n);
    21     for(i=0;i<n;i++)
    22     {
    23         gets(input);
    24         a=f(input,0);
    25         b=f(input,8);
    26         c=f(input,16);
    27         d=f(input,24);
    28         printf("%d.%d.%d.%d
    ",a,b,c,d);
    29     }
    30     //system("pause");
    31     return 0;
    32 }
  • 相关阅读:
    Angular2学习笔记一
    @valid注解
    JPA注解@GeneratedValue
    java8 lambda 表达式
    Lombok的使用
    mybatis-plus的集成与使用
    mybatis之Sql语句构建器
    mybatis之使用注解
    php学习----异常处理(接上篇)
    php学习----错误处理和代码重用
  • 原文地址:https://www.cnblogs.com/mobileliker/p/3584599.html
Copyright © 2020-2023  润新知