|  | 
|  | 
| вернуться в форум | WA#4 Послано evil  11 сен 2016 17:06The following is my program,i want to know why it always be "wrong answer".
 
 #include <stdio.h>
 #include <string.h>
 #include <math.h>
 int main()
 {
 int i,k,m,n;
 double s;
 bool f,t;
 char a[100000];
 while(scanf("%s",a)!=EOF)
 {
 int d=strlen(a);
 char max=a[0];
 for(i=1;i<d;i++)
 {
 if(a[i]>max)
 max=a[i];
 }
 if(max>='A'&&max<='Z')
 m=max-65+10;
 else m=max-'0';
 for(k=2;k<=36;k++)
 {
 s=0;
 f=false;
 t=true;
 if(m>=k)
 continue;
 for(i=0;i<d;i++)
 {
 if(a[i]>='A'&&a[i]<='Z')
 n=a[i]-65+10;
 else
 n=(int)a[i]-48;
 if(n==0&&t)
 continue;
 else t=false;
 s=s+n*pow(k,d-i-1);
 }
 
 if((int)s%(k-1)==0)
 {
 f=true;
 break;
 }
 }
 if(f)
 printf("%d\n",k);
 else
 printf("No solution.\n");
 }
 return 0;
 }
 | 
 | 
|