UVa 446 - Kibbles n Bits n Bits n Bits

Contents

  1. 1. Problem
  2. 2. Solution
  3. 3. Code

Problem

中文網址

Solution

Code

UVa 446
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include<cstdio>

int main()
{
int n;
scanf("%d", &n);
while (n--)
{
int a, b, c, i;
char op[3], bin1[13], bin2[13];
scanf("%X%s%X", &a, op, &b);
if (op[0] == '+')
c = a + b;
else
c = a - b;

for (i = 0; i < 13; i++)
{
bin1[i] = (a % 2) + '0';
a /= 2;
}

for (i = 0; i < 13; i++)
{
bin2[i] = (b % 2) + '0';
b /= 2;
}

for (i = 12; i >= 0; i--)
putchar(bin1[i]);
putchar(' ');
putchar(op[0]);
putchar(' ');
for (i = 12; i >= 0; i--)
putchar(bin2[i]);
printf(" = %d\n", c);
}

return 0;
}