SPOJ ADDREV Problem

I looked at other topics of this problem SPOJ , ADDREV (adding back numbers), but, unfortunately, I could not get an answer to any of the three programs I wrote (in C, Python and Java). I attach code snippets from all three.

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

With Python, I get a runtime error.

With C, I get the wrong answer.

    #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;
    }

With Java, I get a compilation error.

    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;

            }
        }
    }

Of course, these errors are reported by the judge SPOJ. Programs work fine on my system. Test cases used:

    2

    999999999 11

    999 11

Answer

    101
    101

Besides

    3

    34 54

    123 091

    00034 00054

Update : Guys, I got a response in the C . Thank you for your help.

+3
source share
2

- , FAQ. , .

, , enter a number . -

34
1998
1

enter a number
enter two numbers
34
enter two numbers
1998
enter two numbers
1

, Java . , , Java .

, , Java ++.

+1
  • Python , Runtime Error, , .
  • C WA, , .
  • JAVA , . -, Scanner, SPOJ (- ). -, , . , SPOJ .
+1

Source: https://habr.com/ru/post/1763656/


All Articles