您的位置:首页 > 其它

编制一个乘法运算的程序

2008-02-14 23:33 225 查看
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
实际上还是要分段输出的……郁闷……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐