/*
* http://sosal.tistory.com/
* made by so_Sal
*/
Time Limit: 1000MS | Memory Limit: 30000K | |
Total Submissions: 18283 | Accepted: 10535 |
Description
27 26 25 24 23 22 21 20
128 64 32 16 8 4 2 1
Input
Output
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
8자리 문자열을 통해 이진수를 받아서 10진수로 바꿔주는 함수만 만들면
매우 쉽게 해결할 수 있습니다.
#include<iostream> #include<vector> #include<algorithm> #include<iomanip> #include<string> #include<cmath> using namespace std; int convert(string input){ int result = 0; for(int i=0;i<input.size();i++){ if(input[i] == '1'){ result+= pow((double)2,7-i); } } return result; } int main(void){ int n; cin>>n; string input; for(int i=0;i<n;i++){ input.clear(); cin>>input; string a = input.substr(0,8); string b = input.substr(8,8); string c = input.substr(16,8); string d = input.substr(24,8); cout<<convert(a)<<"."<<convert(b)<<"."<<convert(c)<<"."<<convert(d)<<endl; } }
'Programing > Algorithm' 카테고리의 다른 글
poj 2140 Herd Sums (0) | 2014.05.06 |
---|---|
algospot - HAMMINGCODE (0) | 2014.05.06 |
algospot - Divisibility (0) | 2014.05.06 |
poj 2608 Soundex (0) | 2014.05.06 |
acmicpc 수찾기: 1920 (0) | 2014.04.30 |