3154 乘法运算

3154 乘法运算

 

NOIP全国联赛普及组

 时间限制: 1 s
 空间限制: 32000 KB
 题目等级 : 钻石 Diamond
 
 
 
题目描述 Description

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

输入描述 Input Description

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

输出描述 Output Description

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

样例输入 Sample Input

89 13

样例输出 Sample Output

   89
* 13
----
267
89
----
1157

注意要末位对齐

数据范围及提示 Data Size & Hint

【样例解释】

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

 
题解:
注意处理细节,一遍过
 
AC代码:
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
using namespace std;
char a1[4],b1[4];
int main(){
    scanf("%s%s",a1,b1);
    int lena=strlen(a1),lenb=strlen(b1);
    int mo=b1[lenb-1]-'0',qa=atoi(a1),qb=atoi(b1);
    printf("%4d
",qa);
    printf("*%3d
",qb);
    printf("----
");
    if(qa<10||qb<10){
        printf("%4d
",qa*qb);return 0;
    }
    printf("%4d
",mo*qa);
    printf("%3d
",qb/10*qa);
    printf("----
");
    printf("%4d
",qa*qb);
    return 0;
}
 
原文地址:https://www.cnblogs.com/shenben/p/5653711.html