ACM UVA-10106

大數乘法。

int ans[600];
int main(int argc, char const* argv[])
{
    string xx,yy;
    while(getline(cin,xx) && getline(cin,yy)){
        int xl = xx.length();
        int yl = yy.length();
        int x[300];
        int y[300];
        for(int i = 0;i<xl || i<yl;i++){
            if(i<xl)
                x[i] = xx[i]-'0';
            if(i<yl)
                y[i] = yy[i]-'0';
        }
        for(int i = 0;i<xl;i++){
            for(int j = 0;j<yl;j++){
                ans[i+j] += (x[xl-i-1]*y[yl-j-1]);
                ans[i+j+1] += ans[i+j]/10;
                ans[i+j] = ans[i+j]%10;
            }
        }
        int j = 600-1;
        while(ans[j] == 0 && j >= 0)
            j--;
        if(j == -1){
            printf("0\n");
        }else{
            while(j >= 0){
                printf("%d",ans[j]);
                ans[j] = 0;
                j--;
            }
            printf("\n");
        }

    }

    return 0;
}