All pastes #802910 Raw Edit

Anonymous

public c v1 · immutable
#802910 ·published 2007-11-30 19:02 UTC
rendered paste body
#include <stdio.h>#include <math.h>int main () {  int num=0;  double rev_num=0; //the number reversed  double let_dig=0; //remembers what came after what, letters or digits  long decimal_value=0;  int i=0,j=0,n=0, counter=0; //i,j,n are help counters  int dig_1=0,dig_2=0;  int base=0;  int smallest_base=1; //represents the smallest base  printf("Enter a number in a known base: ");  num = getchar();  while (num!='\n') {   // if (num<'a'|| num>'z') {     // printf("Invalid input!\n");     // return 0;   // }   // if (num<1 || num>9) {     //	printf("Invalid input!\n");     //	return 0;   //   }    if (num>='1' && num<='9') {      num = num - '1' + 1;      rev_num += num * pow(10,i); //the number, reversed      i++;      let_dig += 1 * pow(10,j);   //if it's a letter -2, if it's a digit - 1.      j++;      base = num + 1;    }    else if (num>='a' && num<='z') {      num=num-'a'+10;      rev_num += num * pow(10,i);      i=i+2;      let_dig += 2 * pow(10,j);      j++;      base = num + 1;    }    smallest_base = base>smallest_base ? base : smallest_base;    num=getchar();  }  printf("%d", smallest_base);  printf("rev_num %lf", rev_num);  printf("let_dig %lf", let_dig);  printf("i %lf, j %lf", i, j);  counter=j;  for (n=0; n<counter; n++) {    dig_1=(int)(rev_num/pow(10,i-1))%10;    i--;    dig_2=(int)(let_dig/pow(10,j-1))%10;    j--;    printf("dig2 %d\n", dig_2);    if (dig_2==2) {      printf("i = %lf, dig1= %d", i, dig_1);      dig_1=dig_1*10 + (int)(rev_num/pow(10,i-1))%10;      printf("dig1 in the loop is: %d\n", dig_1);      i--;    }    printf("dig1 %d", dig_1);    decimal_value+=(long)(dig_1*pow(smallest_base,n));    printf("\n decimal-value: %ld\n", decimal_value);  }  printf("The smallest possible base for the number is: %d\n", smallest_base);  printf("The decimal value of that number in base %d is %ld\n", smallest_base, decimal_value);  return 0;}