Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

AC

Posted by me2002 at 2008-02-24 16:21:25 on Problem 1503
In Reply To:Why is wrong answer? Posted by:chj8081 at 2008-02-02 17:41:54
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void move(char ans[],char str[])
{
    int len1,len2;
    len1=strlen(ans);
    len2=strlen(str);
    if(len1>len2)
    {
        for(;len2>=0;len2--,len1--)
                str[len1]=str[len2];
        for(int i=0;i<=len1;i++)
            str[i]='0';
    }
    else if(len1<len2)
    {
        for(;len1>=0;len1--,len2--)
               ans[len2]=ans[len1];
        for(int i=0;i<=len2;i++)
             ans[i]='0';  
    }
}


void add(char ans[],char str[])
{
    move(ans,str);
  //  printf("%d %d\n",strlen(ans),strlen(str));
  //  puts(ans);
  //  puts(str);
    int i;
    int flag=0;
    for(i=strlen(ans)-1;i>=0;i--)
    {
        int sum=flag+ans[i]-'0'+str[i]-'0';
        flag=sum/10;
        sum=sum%10;
        ans[i]='0'+sum;
    }
   // printf("%s\n",ans);
    if(flag)
    {
        for(int j=strlen(ans);j>=0;j--)
        {
             //   printf("%d\n",j);
                ans[j+1]=ans[j];
        }
        ans[0]=flag+'0';
    }
    
}

int main(void)
{
   char str[103];
    char ans[103];
    scanf("%s",str);
   
    strcpy(ans,str);
    if(!strcmp(str,"0"))
       return 0;
    while(1)
    {
        
         
       //  puts(str);
         
        scanf("%s",str);
        if(!strcmp(str,"0"))
            break;
        add(ans,str);
        
       
    }
    int i;
    for(i=0;ans[i]=='0';i++);
    printf("%s\n",ans+i);
   // system("PAUSE");
    return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator