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:27
26
25
24
23
22
21
20
128 64 32 16 8 4 2 1Input
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
01010000000100000000000000000001Sample Output
0.0.0.0
3.128.255.255
203.132.229.128
80.16.0.1Source
3.思路:
4.代码:
#include "stdio.h"
#include "stdlib.h" int f(char input[],int start)
{
int ans=;
int i;
for(i=;i<;i++)
{
ans=ans*+(input[i+start]-'');
}
return ans;
}
int main()
{
int a,b,c,d;
int n;
int i;
char input[];
scanf("%d\n",&n);
for(i=;i<n;i++)
{
gets(input);
a=f(input,);
b=f(input,);
c=f(input,);
d=f(input,);
printf("%d.%d.%d.%d\n",a,b,c,d);
}
//system("pause");
return ;
}