/* ============================================================================ Name : Project1_Solution.c Author : Version : Copyright : Your copyright notice ============================================================================ */ #include #include #include #include int main(void) { TC_BEGIN; int i, base, numb1, numb2, temp; int maxDegree=0, max, degree=0, sum1=0, sum2=0, result=0; char operation; //Take inputs from the user. scanf("%d", &base); scanf("\n%c", &operation); scanf("\n%d", &numb1); scanf("\n%d", &numb2); //Convert first number into base 10. while(numb1 > 0 ){ temp = numb1 % 10; sum1 += temp * pow(base,degree); numb1 = numb1/10; degree++; } degree = 0; //Convert second number into base 10. while(numb2 > 0 ){ temp = numb2 % 10; sum2 += temp * pow(base,degree); numb2 = numb2/10; degree++; } //Make related operation. switch(operation){ case 'a': result = sum1 + sum2; break; case 's': result = sum1 - sum2; break; case 'd': result = sum1 / sum2; break; case 'm': result = sum1 * sum2; break; } //Find max degree of result. //For example: //if Base=2 and Result=8, then maxDegree=3. //if Base=7 and Result=686, then maxDegree=3. while(pow(base, maxDegree) < result){ if(pow(base, maxDegree+1) > result) break; maxDegree++; } //Print the final result on the screen. for(i = maxDegree; i >= 0; i--){ max = pow(base, i); printf("%d", result/max); result = result%max; } TC_END; return 0; }