Problem C :: Getting WA :: Please! anyboday help me to find bug .

6 views
Skip to first unread message

Menon

unread,
Mar 14, 2015, 9:26:56 AM3/14/15
to akab...@googlegroups.com
// sample input / output is ok.
#include <iostream>
#include <cstdio>
#include <cstring>

long long int pow(int base, int power);
long long int ConvertAnyNumberToDecimalNumber(char const *s, int base);
void convertDecimalNumberToAnyNumber(long long int decimalNumber, int base);

int main()
{
   
char firstNumber[50];
   
int firstBaseNumber, secondBaseNumber;
   
long long int decimalNumber;

   
// freopen("input.txt", "r+", stdin);

   
while(std::cin >> firstNumber >> firstBaseNumber >> secondBaseNumber) {
        decimalNumber
= ConvertAnyNumberToDecimalNumber(firstNumber, firstBaseNumber);
        convertDecimalNumberToAnyNumber
(decimalNumber, secondBaseNumber);
   
}

   
return 0;
}

long long int pow(int base, int power)
{
   
long long int ans = 1;
   
for(int i = 1; i <= power; i++) {
        ans
*= base;
   
}

   
return ans;
}

long long int ConvertAnyNumberToDecimalNumber(char const *s, int base)
{
   
int i, len, n;
   
long long int decimal;

   
decimal = 0;
    len
= strlen(s);
   
for(i = 0; i < len; i++) {

       
if(s[i] == 'A')
            n
= 10;
       
else if(s[i] == 'B')
            n
= 11;
       
else if(s[i] == 'C')
            n
= 12;
       
else if(s[i] == 'D')
            n
= 13;
       
else if(s[i] == 'E')
            n
= 14;
       
else if(s[i] == 'F')
            n
= 15;
       
else
            n
= s[i] - '0';


       
decimal += pow(base, len-i - 1) * n;
   
}

   
return decimal;

}

void convertDecimalNumberToAnyNumber(long long int decimalNumber, int base)
{
   
char OurNumber[50];
   
int i, n;

    i
= 0;
   
while(decimalNumber != 0)
   
{
        n
= decimalNumber % base;
       
switch(n)
       
{
           
case 10: OurNumber[i] = 'A';
               
break;
           
case 11: OurNumber[i] = 'B';
               
break;
           
case 12: OurNumber[i] = 'C';
               
break;
           
case 13: OurNumber[i] = 'D';
               
break;
           
case 14: OurNumber[i] = 'E';
               
break;
           
case 15: OurNumber[i] = 'F';
               
break;
           
default :
               
OurNumber[i] = n + '0';
               
break;
       
}
        i
++;

        decimalNumber
= decimalNumber / base;
   
}

   
int j = i - 1;

   
if(j > 7) {
        printf
("   ERROR");
   
}
   
else {
       
int space = 7 - j;
       
for(int i = 0; i < space; i++) {
            printf
(" ");
       
}
       
for(; j >= 0; j--) {
            printf
("%c", OurNumber[j]);
       
}
   
}
    printf
("\n");
}
Enter code here...


Md. Abdulla Al Mamun Nayon

unread,
Mar 14, 2015, 10:45:08 AM3/14/15
to akab...@googlegroups.com
ভাইয়া, এই ইনপুটটা কি ট্রাই করছেন 0000000 16 13
Reply all
Reply to author
Forward
0 new messages