Saturday, November 26, 2016

Large sum

Work out the first ten digits of the sum of   numbers.
Input Format
First line contains , next  lines contain a 50 digit number each.
Constraints
Output Format
Print only first 10 digit of the final sum
Sample Input
5
37107287533902102798797998220837590246510135740250
46376937677490009712648124896970078050417018260538
74324986199524741059474233309513058123726617309629
91942213363574161572522430563301811072406154908250
23067588207539346171171980310421047513778063246676
Sample Output
2728190129
Explanation
Summing the numbers we get , first 10 digits are.
NOTE: WRITE YOUR PROGRAM IN COMMENTS SECTION
*************************
PROGRAM
************************
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>

int main() {

    /* Enter your code here. Read input from STDIN. Print output to STDOUT */   
    
    
    int n,i,a[10],k=0; 
    scanf("%d",&n);
    char **arr = (char **)malloc(n * sizeof(char *));
    for (i=0; i<n; i++)
    {
         arr[i] = (char *)malloc(50 * sizeof(char));
        scanf("%s",arr[i]);
    }
    long long int bal=0;
    for(i=49;i>=10;i--)
        {
        for(int j=0;j<n;j++)
            {
            int t=arr[j][i]-48;
            bal=bal+t;
        }
        bal=bal/10;
    }
    for(i=9;i>=0;i--)
        {
        for(int j=0;j<n;j++)
            {
            int t=arr[j][i]-48;
            bal=bal+t;
        }
        a[k]=bal%10;
        k++;
        bal=bal/10;
    }
    printf("%lld",bal);
    /* count number of digits */
    int c=0;
    while(bal>0)
        {
        bal=bal/10;
        c++;
    }
   for(i=9;i>=c;i--)
       printf("%d",a[i]);
    
    return 0;
}