UVa 343

From Algorithmist
Jump to navigation Jump to search

343 - What base is this[edit]

Summary[edit]

Given two numbers n1, n2 calculate find a the bases of both numbers such that n1 (base b1)= n2 (base b2).

Explanation[edit]

  • Calculate the base 10 equivalent of n1 (base 1) and n2 (base 2) for each base and when they are equal to each other they are both equivalent.
  • White space should not affect the input.

Gotchas[edit]

  • The problem states the bases are from 1 to 36 but there is no base 1 for this question!!
  • Use unsigned long long just incase, the cases will most likely overflow signed int.

Optimizations[edit]

You could generate the values for the bases and store it into an array. The lookup will save you the cost of calculating it every time.

Input[edit]

12   5
    10     A
12 34
  123   456
  1    2
  10   2
  10 36
  35 Z
Z                     35
0 0 

Output[edit]

12 (base 3) = 5 (base 6)
10 (base 10) = A (base 11)
12 (base 17) = 34 (base 5)
123 is not equal to 456 in any base 2..36
1 is not equal to 2 in any base 2..36
10 (base 2) = 2 (base 3)
10 (base 27) = 36 (base 7)
35 (base 10) = Z (base 36)
Z (base 36) = 35 (base 10)
0 (base 2) = 0 (base 2) 

References[edit]