Open murry2018 opened 3 years ago
n = int(input())
for i in range(n):
hip = [int(c) for c in input()[2:][::-1]]
h = hip.pop()
d = 5
res = ''
while True:
if h - d >= 0:
h -= d
res += '1'
else:
res += '0'
if len(hip) == 0 and h == 0:
break
if len(res) > 12:
res = 'overflow'
break
t = hip.pop() if len(hip) > 0 else 0
h = h*10+t
d = d*5 # d*10 /2
print(f'#{i+1} {res}')
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<iostream>
#include<string.h>
using namespace std;
int main(void)
{
//freopen("input.txt", "r", stdin);
int T, T_temp;
T_temp = 1;
scanf("%d", &T);
int test_case;
char array[51][101];
int row, col, idx, jdx;
bool find_flag;
int rightup_row, rightup_col;
char catch_data[8][8];
int catch_integer[8];
int sum_integer;
int debug_integer;
for (test_case = 1; test_case <= T; ++test_case)
{
find_flag = 0;
int kdx = 0;
int mdx = 0;
scanf("%d %d", &row, &col);
for (idx = 0; idx < row; ++idx)
{
scanf("%s", array[idx]);
}
for (idx = 0; idx < row; ++idx)
{
for (jdx = col-1; jdx >= 0; --jdx)
{
if ((array[idx][jdx] == 49)&&(find_flag==0))
{
find_flag = 1;
rightup_row = idx;
rightup_col = jdx;
}
if (find_flag == 1)
{
if (mdx == 7)
{
mdx = 0;
++kdx;
}
if (kdx == 8)
{
break;
}
catch_data[7 - kdx][6 - mdx] = array[idx][jdx];
catch_data[7 - kdx][7] = NULL;
++mdx;
}
}
if (kdx == 8)
break;
}
sum_integer = 0;
debug_integer = 0;
for (idx = 0; idx < 8; ++idx)
{
if (strcmp(catch_data[idx], "0001101") == 0)
catch_integer[idx] = 0;
else if (strcmp(catch_data[idx], "0011001") == 0 )
catch_integer[idx] = 1;
else if (strcmp(catch_data[idx], "0010011") == 0 )
catch_integer[idx] = 2;
else if (strcmp(catch_data[idx], "0111101") == 0 )
catch_integer[idx] = 3;
else if (strcmp(catch_data[idx], "0100011") == 0 )
catch_integer[idx] = 4;
else if (strcmp(catch_data[idx], "0110001") == 0)
catch_integer[idx] = 5;
else if (strcmp(catch_data[idx], "0101111") == 0 )
catch_integer[idx] = 6;
else if (strcmp(catch_data[idx], "0111011") == 0 )
catch_integer[idx] = 7;
else if (strcmp(catch_data[idx], "0110111") == 0 )
catch_integer[idx] = 8;
else if (strcmp(catch_data[idx], "0001011") == 0 )
catch_integer[idx] = 9;
else
{
catch_integer[idx] = -1000;
}
sum_integer = sum_integer + catch_integer[idx];
if (idx % 2 == 0)
debug_integer = debug_integer + 3 * catch_integer[idx];
else
debug_integer = debug_integer + catch_integer[idx];
}
if (debug_integer % 10 != 0)
sum_integer = 0;
printf("\n#%d %d", test_case, sum_integer);
}
return 0;//정상종료시 반드시 0을 리턴해야합니다.
}
```c++
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
using namespace std;
int Decode(char input[])
{
char arr[8];
for (int i = 0; i < 7; i++)
arr[i] = input[i];
arr[7] = '\0';
if (!strcmp(arr, "0001101"))
return 0;
if (!strcmp(arr, "0011001"))
return 1;
if (!strcmp(arr, "0010011"))
return 2;
if (!strcmp(arr, "0111101"))
return 3;
if (!strcmp(arr, "0100011"))
return 4;
if (!strcmp(arr, "0110001"))
return 5;
if (!strcmp(arr, "0101111"))
return 6;
if (!strcmp(arr, "0111011"))
return 7;
if (!strcmp(arr, "0110111"))
return 8;
if (!strcmp(arr, "0001011"))
return 9;
else
return -1;
}
int main(int argc, char** argv)
{
int test_case;
int T;
//freopen("input.txt", "r", stdin);
cin >> T;
for (test_case = 1; test_case <= T; ++test_case)
{
int size_column;
int size_row;
int i, j;
scanf("%d %d", &size_column, &size_row);
char** arr;
arr = (char**)malloc(sizeof(char*) * size_column);
for (i = 0; i < size_column; i++)
arr[i] = (char*)malloc(sizeof(char) * (size_row + 1));
char signal = 0;
int num_row = 0;
for (i = 0; i < size_column; i++)
{
scanf("%s", arr[i]);
for (j = 0; j < size_row + 1; j++)
{
if (arr[i][j] == '1')
{
num_row = i;
}
}
}
char temp[7] = { 0, };
int code[9];
int data;
int num_code = 8;
j = 0;
signal = 0;
int start = 0;
while (num_code)
{
j = start;
num_code = 8;
while (num_code)
{
for (i = 0; i < 7; i++)
{
temp[i] = arr[num_row][j + i];
}
data = Decode(temp);
if (data == -1)
{
start++;
break;
}
else
{
code[num_code] = data;
num_code--;
j += 7;
}
}
}
int sum = 0;
for (i = 2; i < 9; i++)
{
if (i % 2 == 0)
sum += code[i] * 3;
if (i % 2 == 1)
sum += code[i];
}
printf("#%d ", test_case);
if ((sum + code[1]) % 10 == 0)
{
sum = 0;
for (i = 8; i > 0; i--)
sum += code[i];
printf("%d", sum);
}
else
printf("0");
printf("\n");
}
return 0;
}
SWEA 5185. 이진수