HUNAN UNIVERSITY ACM/ICPC Judge Online —— Problem 10049 IP Address
2007-03-20 12:55
447 查看
这次注意到了两个问题:首先是连续输入二进制数的时候使用整型的数组是不方便的,所以后来改用了char。第二就是char型数组需要预留一个元素用来存储'/0'的结束字符,我之前的几次提交失败的原因就是在这。
问题描述:
三次提交AC!
// 10049.cpp : Defines the entry point for the console application.
//
//#include "stdafx.h"
#include <iostream.h>
#include <math.h>
//using namespace std;
int OutIP[9][4];
void ChangeToIp(const char Temp[],int j)
...{
for(int x=0;x<4;x++)
...{
int temp=0;
for(int y=0;y<8;y++)
...{
if(Temp[8*x+y]=='1')
temp+=1*pow(2,7-y);
else //if(Temp[8*x+y]=='1')
temp+=0*pow(2,7-y);
}
OutIP[j][x]=temp;
}
}
int main()
...{
int N=0;
cin>>N;
if((N>0&&N<10)!=1)
return 0;
char TempIn[33];
for(int i=0;i<N;i++)
...{
cin>>TempIn;
ChangeToIp(TempIn,i);
}
for(int a=0;a<N;a++)
...{
cout<<OutIP[a][0]<<"."<<OutIP[a][1]<<"."<<OutIP[a][2]<<"."<<OutIP[a][3]<<endl;
}
// cout<<TempIn<<endl;
return 0;
}
附上“马牛不是人”的解法:
问题描述:
IP Address Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:32768KB Total submit users: 405, Accepted users: 388 Problem 10049 : No special judgement Problem 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 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 Problem Source MCA 2004 Submit Discuss Judge Status Problems Ranklist |
// 10049.cpp : Defines the entry point for the console application.
//
//#include "stdafx.h"
#include <iostream.h>
#include <math.h>
//using namespace std;
int OutIP[9][4];
void ChangeToIp(const char Temp[],int j)
...{
for(int x=0;x<4;x++)
...{
int temp=0;
for(int y=0;y<8;y++)
...{
if(Temp[8*x+y]=='1')
temp+=1*pow(2,7-y);
else //if(Temp[8*x+y]=='1')
temp+=0*pow(2,7-y);
}
OutIP[j][x]=temp;
}
}
int main()
...{
int N=0;
cin>>N;
if((N>0&&N<10)!=1)
return 0;
char TempIn[33];
for(int i=0;i<N;i++)
...{
cin>>TempIn;
ChangeToIp(TempIn,i);
}
for(int a=0;a<N;a++)
...{
cout<<OutIP[a][0]<<"."<<OutIP[a][1]<<"."<<OutIP[a][2]<<"."<<OutIP[a][3]<<endl;
}
// cout<<TempIn<<endl;
return 0;
}
附上“马牛不是人”的解法:
/*start 17:43*/ /*end 18:08 25min*/ #include <stdio.h> #include <string.h> main() { int n,i,j,p,dec=0; char s[32]; scanf("%d",&n); for( i = 0 ; i < n ; i++ ){ scanf("%s",s); for( j = 0,p = 7 ; j < 32 ; j++,p--){ if(s[j]=='1')dec+=pow(2,p); if( p == 0 ){ p=8; printf("%d",dec); dec=0; if(j == 31)printf(" "); else printf("."); } } } system("PAUSE"); } |
相关文章推荐
- HUNAN UNIVERSITY ACM/ICPC Judge Online_Problem 10049_IP Address
- HUNAN UNIVERSITY ACM/ICPC Judge Online —— Problem 10026 谁拿了最多奖学金
- HUNAN UNIVERSITY ACM/ICPC Judge Online —— Problem 10038 Lowest Bit
- HUNAN UNIVERSITY ACM/ICPC Judge Online_Problem 10026_谁拿了最多奖学金
- HUNAN UNIVERSITY ACM/ICPC Judge Online_Problem 10038_Lowest Bit
- HUNAN UNIVERSITY ACM/ICPC Judge Online_Problem 10039_Magician
- HUNAN UNIVERSITY ACM/ICPC Judge Online_Problem 10014_The Triangle
- HUNAN UNIVERSITY ACM/ICPC Judge Online_Problem 11146_Number Guessing
- HUNAN UNIVERSITY ACM/ICPC Judge Online_Problem 10010_Recaman's Sequence
- HUNAN UNIVERSITY ACM/ICPC Judge Online_Problem 11135_The ones to remain
- HUNAN UNIVERSITY ACM/ICPC Judge Online_Problem 10050_Jolly Jumpers
- HUNAN UNIVERSITY ACM/ICPC Judge Online_Problem 10013_Calendar
- HUNAN UNIVERSITY ACM/ICPC Judge Online_Problem 10001_Longest Ordered Subsequence
- HUNAN UNIVERSITY ACM/ICPC Judge Online_Problem 10054_导弹拦截
- HUNAN UNIVERSITY ACM/ICPC Judge Online_Problem 10042_SpinLock
- HUNAN UNIVERSITY ACM/ICPC Judge Online_Problem 10015_Self Numbers
- HUNAN UNIVERSITY ACM/ICPC Judge Online_Problem 10048_Common permutation
- HUST ACM/ICPC Online Judge Problem 1010--解题报告
- http://acm.nyist.net/JudgeOnline/problem.php?pid=434
- http://acm.nyist.net/JudgeOnline/problem.php?pid=301