Facebook
From Mustard Eider, 1 Year ago, written in C.
This paste is a reply to Untitled from Bitty Peafowl - view diff
Embed
Download Paste or View Raw
Hits: 75
  1. #include<stdio.h>
  2. #include<math.h>
  3.  
  4. int convertToBase10(int x, int base){
  5.     int result = 0;
  6.     int i = 0;
  7.     while(x>0){
  8.         result += (x%10)*pow(base,i);
  9.         i++;
  10.         x/=10;
  11.     }
  12.     return result;
  13. }
  14. int convertFromBase10(int x, int base){
  15.     int result = 0;
  16.     int i = 0;
  17.     while(x>0){
  18.         result += (x%base) * pow(10,i);
  19.         x/=base;
  20.         i++;
  21.     }
  22.     return result;
  23. }
  24.  
  25. int main(){
  26.     int base1,base2,x;
  27.     scanf("%d %d %d",&base1,&base2,&x);
  28.     x = convertFromBase10(convertToBase10(x,base1),base2);
  29.     int n = (int)log10(x) + 1;
  30.     x *= (int)pow(10,n%2);
  31.     int halfSize = (int)pow(10,ceil(((int)log10(x) + 1)/2)) + (((int)log10(x) + 1) == 0);
  32.     int part1 = x%(halfSize);
  33.     int part2 = x/(halfSize);  
  34.     int result = convertToBase10(part1,base2) + convertToBase10(part2,base2);
  35.     printf("%i",convertFromBase10(result,base2));
  36. }