算法提高 乘法运算

来源:互联网 发布:数据新闻的特点 编辑:程序博客网 时间:2024/05/23 18:12

1018: 算法提高 乘法运算

时间限制: 1 Sec  内存限制: 512 MB
提交: 18  解决: 5
[提交][状态][讨论版]

题目描述

编制一个乘法运算的程序。
从键盘读入2个100以内的正整数,进行乘法运算并以竖式输出。

输入

输入只有一行,是两个用空格隔开的数字,均在1~99之间(含1和99)。

输出

输出为4行或7行,符合乘法的竖式运算格式。

样例输入

89 13

样例输出

89×13━━━26789━━━1157

提示


3×89=267,则第四行267右侧对准个位输出。1×89=89,则第五行89右侧对准十位输出。267+890=1157,则1157右侧对准个位输出。 

来源

#include<iostream>using namespace std;int main(){    int n,m,a[2]={0},b[2]={0};    cin>>n>>m;    a[0]=n%10;//保存第一个数的个位     a[1]=n/10;//保存第一个数的十位     b[0]=m%10;//     b[1]=m/10;//    cout<<n<<endl;    cout<<"×"<<m<<endl;cout<<"━━━"<<endl;if(a[1]>0&&b[1]>0)//两位数乘两位数{   for(int i=0;i<2;i++)  {    if(n*b[i]==0)    cout<<"  00"<<endl;    else if(i==0&&n*b[0]!=0)    {    if(n*b[1]/100!=0)    {    if(n*b[0]/100!=0&&n*b[1]/100!=0)cout<<" "<<n*b[i]<<endl;else if(n*b[0]/100==0&&n*b[1]!=0)cout<<"  "<<n*b[i]<<endl;   }   else   {   if(n*b[0]/100!=0)cout<<n*b[i]<<endl;   }}    else    cout<<n*b[i]<<endl;  }cout<<"━━━"<<endl;cout<<n*m<<endl;} if(a[1]>0&&b[1]==0)//两位数乘一位数 {  for(int i=0;i<1;i++)  {    if(n*b[i]==0)    cout<<" 00"<<endl;    if(n*b[i]!=0&&n*b[i]/100!=0)    cout<<n*b[i]<<endl;    if(n*b[i]!=0&&n*b[i]/100==0)    cout<<" "<<n*b[i]<<endl;  }} if(a[1]==0&&b[1]>0)//一位数乘两位数{  for(int i=0;i<2;i++)  {    if(n*b[i]==0)    cout<<" 00"<<endl;    if(n*b[i]!=0&&n*b[i]/100!=0)    cout<<n*b[i]<<endl;    if(n*b[i]!=0&&n*b[i]/100==0&&n*b[i]/10!=0)    cout<<" "<<n*b[i]<<endl;    if(n*b[i]!=0&&n*b[i]/100==0&&n*b[i]/10==0)    cout<<"  "<<n*b[i]<<endl;   }cout<<"━━━"<<endl;cout<<n*m<<endl;     }return 0; } 


1 0