zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    TCP概述
    拥塞窗口
    流量控制与滑动窗口
    Hadoop完全分布式安装配置完整过程
    Nagle算法
    mac安装软件后打不开,显示损坏,扔到废纸篓
    mac设置有线访问内网,无线访问外网
    linux 开机自启脚本配置
    linux中$#,$0,$1,$2,$@,$*,$$,$?的含义
    Window-server-2012显示电脑图标
  • 原文地址:https://www.cnblogs.com/mobileliker/p/3584599.html
Copyright © 2011-2022 走看看