SPOJ ADDREV Problem

Ich habe die anderen Themen auf diesem @ durchgegang SPOJ Problem, ADDREV (Adding Reversed Numbers), aber leider konnte ich von keinem der drei von mir geschriebenen Programme eine Antwort bekommen (in C, Python und Java). Ich füge die Code-Schnipsel aller drei an.

Python

    def find_rev(a):
        d=0

        while(a>=1):
            d=d*10+a%10
            a=a/10
        return d

    n=input('enter a number')
    for i in range(int(n)):
        num1=input('enter the first number')
        num2=input('enter the second number')
        num=0
        num1=find_rev(int(num1))
        num2=find_rev(int(num2))

        num=num1+num2
        num=find_rev(num)

        print num

Mit Python erhalte ich einen Laufzeitfehler.

it C bekomme ich eine falsche Antwor

    #include<stdio.h>
    long rev(long);
    int main()
    {
        long int n;
        long int n1;
        long int n2;
        long int i=0;
        scanf("%ld",&n);
        //printf("%d",n);
        for (i=0;i<n;i++)
        {
            //printf("\n%d",i);
            //printf("\nenter the two numbers");
            scanf("%ld%ld",&n1,&n2);

            n = rev(rev(n1)+rev(n2));
            printf("%ld\n",n);
        }
        return 0;
    }

    long rev(long a)
    {
        long d=0;
        while(a>=1)
        {
            d = d*10+a%10;
            a = a/10;
        }
        return d;
    }

Mit Java erhalte ich einen Kompilierungsfehler.

    import java.util.*;
    //import java.io.*;
    public class spoj_prob {

        public static void main(String args[])
        {
            long n=0;
            System.out.println("enter a number \n");
            Scanner in=new Scanner(System.in);
            n=in.nextLong();
            long n1=0;
            long n2=0;
            long sum=0;
            for (int i=0; i<n; i++)
            {
                System.out.println("enter two numbers \n ");
                 n1=in.nextLong();
                 n2=in.nextLong();
                n1=rev(n1);
                n2=rev(n2);
                System.out.println(n1);
                System.out.println(n2);
                 sum=rev(n1+n2);
                System.out.println(sum);

            }
        }

        static long rev(long a)
        {
            long d=0;
            while (a>=1)
            {
                d=d*10+a%10;
                a=a/10;
            }
            return d;

            }
        }
    }

Natürlich werden diese Fehler vom SPOJ-Richter gemeldet. Die Programme funktionieren auf meinem System einwandfrei. Von mir verwendete Testfälle sind:

    2

    999999999 11

    999 11

Antworte

    101
    101

Ebenfall

    3

    34 54

    123 091

    00034 00054

Aktualisiere: Jungs, ich habe die Antwort in C. Vielen Dank für all die Hilfe.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage