Page 5 of 7
Re: 389 WA why?
Posted: Fri Jul 25, 2008 12:37 am
by Bitta
i am getting runtime error in 389-Basically speaking.please help me...

here is my code-
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
char num[1000];
char d[1000];
char ans[1000];
long int convert_decimal(char *s,int base)
{
long int i,j,sum;
j=strlen(s)-1;
sum=0;
for(i=0;s
;i++)
{ if(s>='0' && s<='9')
{ sum+=((s-'0')*(long int)(pow(base,j)));
j--;
}
else if(s>='A' && s<='Z')
{ sum+=((s-55)*(long int)(pow(base,j)));
j--;
}
}
return sum;
}
char* itob(long int n,int b)
{ int i,j,temp;
i=0;
do
{ j=n%b;
d[i++]=(j<=9)?(j+'0'):(j+'A'-10);
}while((n/=b)>0);
d='\0';
j=strlen(d)-1;
for(i=0;i<=j;i++,j--)
{ temp=d;
d=d[j];
d[j]=temp;
}
return d;
}
int main()
{ char s[1000];
char t[3];
char f[3];
int sum,i,j,k,p,l,c,from,to;
while(1)
{ gets(s);
j=0;
k=0;
l=0;
p=0;
for(i=0;s[i];i++)
{
if(s[i]==' ')
continue;
else if(((s[i]>='0' && s[i]<='9') || (s[i]>='A' && s[i]<='F')) && p==0)
{ p=1;
while(s[i]!=' ')
{ c=s[i];
num[j++]=c;
i++;
}
num[j]='\0';
}
else if(p==1)
{ p=2;
while(s[i]!=' ')
{ c=s[i];
f[k++]=c;
i++;
}
f[k]=NULL;
}
else if(p==2)
{
while(s[i]!=' ')
{ c=s[i];
t[l++]=c;
i++;
}
t[l]=NULL;
}
}
from=atoi(f);
to=atoi(t);
sum=convert_decimal(num,from);
strcpy(ans,itob(sum,to));
if(strlen(ans)>6)
printf(" ERROR\n");
else
{ printf("%7s",ans);
printf("\n");
}
}
return 0;
}
Re: 389 WA why?
Posted: Sat Jul 26, 2008 3:43 pm
by Bluefin
Hey, everybody, my code also gives WA, and I don't know why. Can anybody help? Thanks in advance
Code: Select all
#include <iostream>
#include <cstdlib>
#include <string.h>
#include <iomanip>
#include <math.h>
using namespace std;
bool k;
char answer[100];
int power(int base, int p);
int original(char ar[], int a);
void converted(int sum, int b);
int main()
{
char ar[100];
int a, b, sum;
while(cin >> ar >> a >> b)
{
sum = original(ar,a);
memset(answer,'\0',100);
k = true;
if(sum == 0)
cout << setw(7) << '0' << endl;
else
{
converted(sum,b);
if(k)
cout << setw(7) << answer << endl;
else
cout << setw(7) << "ERROR" << endl;
}
}
system("PAUSE");
return EXIT_SUCCESS;
}
int original(char ar[], int a)
{
int length = strlen(ar), tmp, sum = 0;
for(int i = 0, j = length - 1; i < length, j >= 0; i++, j--)
{
if(ar[i] >= '0' && ar[i] <= '9')
tmp = ar[i] - 48;
else
tmp = ar[i] - 55;
sum += tmp * power(a,j);
}
return sum;
}
void converted(int sum, int b)
{
int p = int(floor(log(sum) / log(b)));
for(int i = p, j = 0; i >= 0; i--, j++)
{
if(j == 7)
{
k = false;
break;
}
int tmp_1 = power(b,i), tmp_2 = sum / tmp_1;
if(tmp_2 >= 0 && tmp_2 <= 9)
answer[j] = tmp_2 + 48;
else
answer[j] = tmp_2 + 55;
sum %= tmp_1;
}
}
int power(int base, int p)
{
int sum = 1;
for(int i = 0; i < p; i++)
sum *= base;
return sum;
}
very god!
Posted: Fri Aug 15, 2008 9:43 pm
by yuyotuiie
bump!!haha
-----------------------------------------------
welcome to our wow power leveling webpage,and here you may have wow powerleveling at every levels, the wow power leveling web for wow power leveling,WOrld of warcraft Power Leveling , Cheap wow gold here,buy WoW Power Leveling,
Re: 389 - 8 months? WA
Posted: Sat Aug 16, 2008 7:58 am
by newton
yuyotuiie
what would u like to say?
Re: 389 - CE
Posted: Mon Oct 06, 2008 4:41 pm
by lnr
I ran your code and got accepted.
389:- WA
Posted: Fri Feb 13, 2009 11:14 pm
by sazzadcsedu
PLZ HELP SOME.
GOT wa.
Code: Select all
#include<stdio.h>
#include<ctype.h>
#include<math.h>
#include<string.h>
int power(int a,int b)
{
int i,res=1;
if(b==0)
return 1;
else
{
for(i=1;i<=b;i++)
{
res=a*res;
}
return res;
}
}
int main()
{
int num,y,len,i,rem,b1,b2,j;
char str[10000];
char resstr[10000];
char revans[10000];
while(scanf("%s %d %d",str,&b1,&b2)==3)
{
//gets(str);
len=strlen(str);
//******************** CONVERTTING NUMBER TO DECIMAL SYSTEM************************
num=0;
y=0;
for(i=len-1;i>=0;i--)
{
if(isdigit(str[i])) //test whether it is digit
num=num+ ((str[i]-48)*power(b1,y));
else
num=num+ ((str[i]-55)*power(b1,y));
y++;
//printf("this is hexadecimal");
}
//printf("%d\n\n",num);
//********************************* @@@@@@@@@@@ *****************************
//************************* decimal to another base*******************
i=0;
while(num>0)
{
rem=num%b2;
//printf(" num %d\n",num);
if(rem==10)
resstr[i]='A';
else if(rem==11)
resstr[i]='B';
else if (rem==12)
resstr[i]='C';
else if (rem==13)
resstr[i]='D';
else if (rem==14)
resstr[i]='E';
else if (rem==15)
resstr[i]='F';
else
resstr[i]=rem+48;
//printf("%x",num);
num=num/b2;
i++;
}
resstr[i]='\0';
//FLAG=0;
if(strlen(resstr)>7)
printf(" ERROR\n");
else
{
//puts(hxstr);
j=0;
for(i=strlen(resstr)-1;i>=0;i--)
{
revans[j]=resstr[i];
j++;
//printf("%c",resstr[i]);
}
revans[j]='\0';
//printf("this is decimal");
printf("%7s",revans);
printf("\n");
}
}
return 0;
}
389:- WA
Posted: Fri Feb 13, 2009 11:18 pm
by sazzadcsedu
PLZ HELP SOMEone.
GOT wa.
Code: Select all
#include<stdio.h>
#include<ctype.h>
#include<math.h>
#include<string.h>
int power(int a,int b)
{
int i,res=1;
if(b==0)
return 1;
else
{
for(i=1;i<=b;i++)
{
res=a*res;
}
return res;
}
}
int main()
{
int num,y,len,i,rem,b1,b2,j;
char str[10000];
char resstr[10000];
char revans[10000];
while(scanf("%s %d %d",str,&b1,&b2)==3)
{
//gets(str);
len=strlen(str);
num=0;
y=0;
for(i=len-1;i>=0;i--)
{
if(isdigit(str[i]))
num=num+ ((str[i]-48)*power(b1,y));
else
num=num+ ((str[i]-55)*power(b1,y));
y++;
}
i=0;
while(num>0)
{
rem=num%b2;
if(rem==10)
resstr[i]='A';
else if(rem==11)
resstr[i]='B';
else if (rem==12)
resstr[i]='C';
else if (rem==13)
resstr[i]='D';
else if (rem==14)
resstr[i]='E';
else if (rem==15)
resstr[i]='F';
else
resstr[i]=rem+48;
//printf("%x",num);
num=num/b2;
i++;
}
resstr[i]='\0';
if(strlen(resstr)>7)
printf(" ERROR\n");
else
{
j=0;
for(i=strlen(resstr)-1;i>=0;i--)
{
revans[j]=resstr[i];
j++;
}
revans[j]='\0';
printf("%7s",revans);
printf("\n");
}
}
return 0;
}
PE 389
Posted: Sat Oct 31, 2009 1:39 am
by qwerty
AC
Re: 389 WA
Posted: Sat Oct 31, 2009 1:43 am
by qwerty
sazzadcsedu try this case
Re: 389 - CE
Posted: Thu Feb 04, 2010 11:31 pm
by Angeh
use strcasecmp();
Re: 389 - 8 months? WA
Posted: Sun Feb 21, 2010 1:11 am
by oamsath
Help me plz ,,,
more than two months with this problem not solved,,,
I've tried every test case to exist ... and still WA
Code: Select all
#include <iostream>
#include <string>
using namespace std ;
unsigned long long int pow ( int x , int y )
{
unsigned long long int total = 1 ;
for ( int i = 0 ; i < y ; i ++ )
total *= x ;
return total ;
}
string reverse(string str)
{
string tmp;
for(int i=str.size()-1;i>=0;i--)
tmp.append(1,str.at(i));
return tmp;
}
string int2str ( int x )
{
string y ;
while ( x > 0 )
{
y.append(1,x%10+'0') ;
x = x / 10 ;
}
y = reverse ( y ) ;
return y ;
}
string base2dec ( int b1 , string input )
{
unsigned long long int total = 0 ;
int step = 0 ;
for ( int i = input.size()-1 ; i >= 0 ; i -- )
{
int value ;
if ( input.at(i) >= '0' && input.at(i) <= '9' )
value = input.at(i) - '0' ;
else
value = input.at(i) - 'A' + 10 ;
total += value*pow(b1,step) ;
step ++ ;
}
return int2str(total) ;
}
string dec2base ( int b2 , string input )
{
int total = atoi(input.c_str()) ;
string output ;
while ( total > 0 )
{
int ndigit = total%b2 ;
char cdigit ;
if ( ndigit < 10 )
cdigit = ndigit + '0' ;
else
cdigit = ndigit - 10 + 'A' ;
output.append(1,cdigit) ;
total /= b2 ;
}
return reverse ( output ) ;
}
int main ()
{
int b1 , b2 ;
string input ;
while ( cin >> input >> b1 >> b2 )
{
if ( b1 != 10 )
input = base2dec ( b1 , input ) ;
if ( b2 != 10 )
input = dec2base ( b2 , input ) ;
if ( input.size() > 7 )
cout << " ERROR" << endl ;
else
{
int spaces = 7 - input.size() ;
for ( int i = 0 ; i < spaces ; i ++ )
cout << " " ;
cout << input << endl ;
}
}
return 0 ;
}
Re: 389 - 8 months? WA
Posted: Thu Feb 25, 2010 12:22 am
by qwerty
oamsath wrote:Help me plz ,,,
more than two months with this problem not solved,,,
I've tried every test case to exist ... and still WA
try the input
hope it helps
Re: 389 - 8 months? WA
Posted: Fri Apr 09, 2010 5:49 pm
by aaa111
why am i getting WA??
Code: Select all
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
void Base_Converter(char *number,int base1,int base2);
void rev_str(char *str);
int main()
{
int base1,base2;
char number[9];
while(scanf("%s %d %d",number,&base1,&base2)!=EOF)
{
Base_Converter(number,base1,base2);
}
return 0;
}
void Base_Converter(char *number,int base1,int base2)
{
long int i,num,sum;
char j[2],conv_num[9];
sum=0;
num=1;
rev_str(number);
for(i=0;number[i]!='\0';i++)
{
if((number[i]>='0')&&(number[i]<='9'))
num=(int)number[i]-48;
else if((number[i]>='A')&&(number[i]<='F'))
num=(int)number[i]-55;
sum+=(int)(num*pow(base1,i));
}
i=0;
if(sum==0)
printf("%7d",sum);
else
{
while(sum!=0)
{
num=(sum%base2);
if(num>9)
j[0]=(char)(num+'7');
else
j[0]=(char)(num+'0');
conv_num[i]=j[0];
sum=sum/base2;
i++;
}
}
conv_num[i]='\0';
i=0;
while(conv_num[i]!='\0')
i++;
rev_str(conv_num);
if(i<=7)
printf("%7.7s\n",conv_num);
else
printf(" Error\n");
}
void rev_str(char *str)
{
int len,i,j;
char ch;
len=strlen(str);
j=len-1;
if(len>1)
{
len=len/2;
}
for(i=0;i<len;i++)
{
ch=str[i];
str[i]=str[j];
str[j]=ch;
j--;
}
}
Re: 389 - 8 months? WA
Posted: Mon Apr 12, 2010 5:50 am
by sirius
@aaa111
For input: 0 10 12
Your program give output : " 0 ",
And for input: FF 16 2
Your program give output: " Error".
While the output should be " 0" and " ERROR"
Had trying to fix this issue, your code will be accepted. Good luck!

Re: 389 - 8 months? WA
Posted: Mon Apr 12, 2010 5:52 pm
by aaa111
Thanks a lot sirius.I got ACC.