天天看點

編制一個乘法運算的程式

FJNU.1405

Description

從鍵盤讀入兩個100以内的正整數,進行乘法計算并輸出

Input

該題有多組測試資料,每組資料為一行,包含兩個乘數,用空格分開。

Output

輸出格式請看樣例.注每一行末尾沒有任何空格,比如樣例資料中的89後面沒有空格。

Sample Input

89 13

Sample Output

     89

*    13

-------

    267

    89

-------

   1157

My Program

編制一個乘法運算的程式

#include < iostream >

編制一個乘法運算的程式

using   namespace  std;

編制一個乘法運算的程式
編制一個乘法運算的程式

void  MIDDLE( int  m, int  n, int  lm, int  ln)

編制一個乘法運算的程式
編制一個乘法運算的程式

... {

編制一個乘法運算的程式

    int a[3],i;

編制一個乘法運算的程式

    int k1,k2,k3;

編制一個乘法運算的程式

    int l1=2,l2=2,l3=2;

編制一個乘法運算的程式

    a[0]=n%10;a[1]=n/10;

編制一個乘法運算的程式

    if(ln==3)

編制一個乘法運算的程式
編制一個乘法運算的程式

    ...{

編制一個乘法運算的程式

        a[2]=n/10%10;

編制一個乘法運算的程式

        a[1]=n/100;

編制一個乘法運算的程式

    }

編制一個乘法運算的程式
編制一個乘法運算的程式

    k1=a[0]*m;

編制一個乘法運算的程式

    if(k1<10)    l1=1;

編制一個乘法運算的程式

    else

編制一個乘法運算的程式

        if(k1>=100)    l1=3;

編制一個乘法運算的程式

        else

編制一個乘法運算的程式

            if(k1>=1000)    l1=4;

編制一個乘法運算的程式
編制一個乘法運算的程式

    k2=a[1]*m;

編制一個乘法運算的程式

    if(k2<10)    l2=1;

編制一個乘法運算的程式

    else

編制一個乘法運算的程式

        if(k2>=100)    l2=3;

編制一個乘法運算的程式

        else

編制一個乘法運算的程式

            if(k2>=1000)    l2=4;

編制一個乘法運算的程式
編制一個乘法運算的程式

    k3=a[2]*m;

編制一個乘法運算的程式

    if(k3<10)    l3=1;

編制一個乘法運算的程式

    else

編制一個乘法運算的程式

        if(k3>=100)    l3=3;

編制一個乘法運算的程式

        else

編制一個乘法運算的程式

            if(k3>=1000)    l3=4;

編制一個乘法運算的程式
編制一個乘法運算的程式

    for(i=7-l1;i>0;i--)

編制一個乘法運算的程式

        cout<<" ";

編制一個乘法運算的程式

    cout<<k1<<endl;

編制一個乘法運算的程式
編制一個乘法運算的程式

    if(ln==3)

編制一個乘法運算的程式
編制一個乘法運算的程式

    ...{

編制一個乘法運算的程式

        for(i=7-l3;i>1;i--)

編制一個乘法運算的程式

            cout<<" ";

編制一個乘法運算的程式

        cout<<k3<<endl;

編制一個乘法運算的程式
編制一個乘法運算的程式

        for(i=7-l2;i>2;i--)

編制一個乘法運算的程式

            cout<<" ";

編制一個乘法運算的程式

        cout<<k2<<endl;

編制一個乘法運算的程式

    }

編制一個乘法運算的程式

    else

編制一個乘法運算的程式
編制一個乘法運算的程式

    ...{

編制一個乘法運算的程式

        for(i=7-l2;i>1;i--)

編制一個乘法運算的程式

            cout<<" ";

編制一個乘法運算的程式

        cout<<k2<<endl;

編制一個乘法運算的程式

    }

編制一個乘法運算的程式
編制一個乘法運算的程式

    cout<<"-------"<<endl;

編制一個乘法運算的程式

}

編制一個乘法運算的程式
編制一個乘法運算的程式

int  main()

編制一個乘法運算的程式
編制一個乘法運算的程式

... {

編制一個乘法運算的程式

    int m,n,s;

編制一個乘法運算的程式

    int lengthM=2,lengthN=2,lengthS=4;

編制一個乘法運算的程式

    int i;

編制一個乘法運算的程式

    while(scanf("%d%d",&m,&n)!=EOF)

編制一個乘法運算的程式
編制一個乘法運算的程式

    ...{

編制一個乘法運算的程式

        s=m*n;

編制一個乘法運算的程式

        lengthM=2;lengthN=2;lengthS=4;

編制一個乘法運算的程式
編制一個乘法運算的程式

        if(m<10)    lengthM=1;

編制一個乘法運算的程式

        if(m>=100)    lengthM=3;

編制一個乘法運算的程式

        if(n<10)    lengthN=1;

編制一個乘法運算的程式

        if(n>=100)    lengthN=3;

編制一個乘法運算的程式

        if(s<10)    lengthS=1;

編制一個乘法運算的程式

        else

編制一個乘法運算的程式

            if(s<100)    lengthS=2;

編制一個乘法運算的程式

            else

編制一個乘法運算的程式

                if(s<1000)    lengthS=3;

編制一個乘法運算的程式

                else    if(s>=10000)    lengthS=5;

編制一個乘法運算的程式
編制一個乘法運算的程式

        for(i=7-lengthM;i>0;i--)

編制一個乘法運算的程式

            cout<<" ";

編制一個乘法運算的程式

        cout<<m<<endl;

編制一個乘法運算的程式
編制一個乘法運算的程式

        cout<<"*";

編制一個乘法運算的程式

        for(i=7-lengthN;i>1;i--)

編制一個乘法運算的程式

            cout<<" ";

編制一個乘法運算的程式

        cout<<n<<endl;

編制一個乘法運算的程式
編制一個乘法運算的程式

        cout<<"-------"<<endl;

編制一個乘法運算的程式
編制一個乘法運算的程式

        if(lengthN!=1)

編制一個乘法運算的程式

            MIDDLE(m,n,lengthM,lengthN);

編制一個乘法運算的程式
編制一個乘法運算的程式

        for(i=7-lengthS;i>0;i--)

編制一個乘法運算的程式

            cout<<" ";

編制一個乘法運算的程式

        cout<<s<<endl;

編制一個乘法運算的程式

    }

編制一個乘法運算的程式
編制一個乘法運算的程式

    return 0;

編制一個乘法運算的程式

}

YOYO's Note: 

很白的寫法……一直WA,我還以為是因為沒有考慮百位,于是就多了一段寫百位……

後來問了人家才知道是自己想太多……我把最後帶0的都考慮了……變成

      12

*     50

--------

      600

實際上還是要分段輸出的……郁悶……