2009-09-26 3 views
0

Mon code est assez simple et direct. Je reçois "mauvaise réponse" sur la soumission si. Je n'ai aucune idée pourquoi cela arrive! Voici le code ...SPOJ mauvaise réponse ADDREV

#include<iostream> 
#include<string> 
using namespace std; 

void sum(string num) 
{ 
    int i,len=num.length(); 
    int j=len-1; 
    int carry=0; 
    string answer; 
    int s=0; 
    for(i=0,j;i<len;i++,j--) 
    { 
    s = (num[i]-'0')+(num[j]-'0')+carry; 
if (s>10&&j!=0) 
{ 
     carry = s/10; 
    s = s%10; 
    } 
else if (s>10&&j==0) 
{ 
     carry=s/10; s=s%10; answer+=s+'0';answer+=carry+'0'; break; 
    } 
answer+=s+'0'; 
    } 
    int sz=answer.size();for(int j=sz-1;j>=0;j--) cout<<answer[j]; 
    } 

    int main(int argc,char **argv) 
    { 
    int n;cin>>n; 
    for(int i=0;i<n;i++) 
    { 
    string no;cin>>no; 
    sum(no);cout<<endl; 
    } 
} 
+1

reformater votre code, il est illisible. –

+0

Quel est le message d'échec? (pris à long, mauvaise réponse, etc) – yxk

+0

Une sorte de soupçon de ce que le code est censé faire serait bien aussi. –

Répondre

0

Je n'ai pas analysé votre code, mais voici quelques conseils sur SPOJ:

  1. Relisez attentivement la description, si vous n'avez pas oublié n'importe quoi.
  2. Vérifiez les cas de bordure, vérifiez si votre sortie a un sens.
  3. Faites attention aux espaces blancs. Vérifiez votre sortie pour les nouvelles lignes/espaces étrangers à la fin.
0
#include<stdio.h> 
#include<math.h> 
int reverse(long long int n); 
int main() 
{ 
     int t; 
     scanf("%d",&t); 
     while(t--) 
     { 
       long long int m,n; 
       scanf("%lld %lld",&m,&n); 
       m = reverse(m) + reverse(n); 
       n = reverse(m); 
       printf("%lld\n",n); 
     } 
     return 0; 
} 
int reverse(long long int n) 
{ 
     long long int i=0,y=0,x=n; 
     while(x) 
     { 
       y++; 
       x = x/10; 
     } 
     while(y) 
     { 
       i = i + (n%10)*pow(10,y-1); 
       n = n/10; 
       y--; 
     } 
     return i; 
} 

Ce code faire accepter

Questions connexes