uva 10106

uva 10106

#include <stdio.h>
#include <string.h>
void swap(char* input){
    int len=strlen(input);
    int i;
    char temp;
    for(i=0;i<len/2;i++){
        temp=input[len-i-1];
        input[len-i-1]=input[i];
        input[i]=temp;
    }
}
int main(){
    char x[300],y[300],z[601];
    int i,j,len_x,len_y,ans;
    memset(x,0,sizeof(x));
    memset(y,0,sizeof(y));
    memset(z,0,sizeof(z));
    while(scanf("%s\n%s",x,y)==2){
        ans=0;
        swap(x);
        swap(y);
        len_x=strlen(x);
        for(i=0;i<len_x;i++){
            x[i]-=48;
        }
        len_y=strlen(y);
        for(i=0;i<len_y;i++){
            y[i]-=48;
        }
        for(i=0;i<=len_x;i++){
            for(j=0;j<=len_y;j++){
                z[i+j]=x[i]*y[j]+z[i+j]+ans;
                ans=z[i+j]/10;
                z[i+j]=z[i+j]%10;
            }
        }
        for(i=600;i>=0;i--)
            if(z[i]!=0)
                break;
        if(i>0)
            for(j=i;j>=0;j--)
                printf("%d",z[j]);
        else
            printf("0");
        printf("\n");
        memset(x,0,sizeof(x));
        memset(y,0,sizeof(y));
        memset(z,0,sizeof(z));
    }
    return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章