题目 1489: [蓝桥杯][算法提高VIP]乘法运算(注意格式)

题目描述

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

样例输入
16 8
样例输出
16
× 8
━━━
128
8×16=128,则第四行128右侧对准个位输出。计算完成,不再输出。

再例如:

输:

87x76
输出:

87
×76
━━━
522
609
━━━
6612

输入
输入只有一行,是两个用空格隔开的数字,均在1~99之间(含1和99)。
输出
输出为4行或7行,符合乘法的竖式运算格式。

**注意,**乘号和下划线为特殊符号,可以从样例中复制黏贴。

样例输入
5 2
样例输出
5
× 2
━━━
10

解题思路:

这道题的格式很重要,格式稍微不对判题机就过不了,所以注意格式细节

代码如下:

import java.util.Scanner;

/**
 * 乘法运算
 * @author hf
 *
 */
public class Cyyw1489 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		// 先打印前三行
		System.out.println(String.format("%4d", a));
		System.out.println("×"+String.format("%2d", b));
		System.out.println("━━━");
		// 当b是两位数需要添加的部分
		if (b >= 10) {
			// 当尾数为0时
			if (b % 10 == 0) {
				System.out.println("  00");
			} else { // 尾数上得到的乘数
				System.out.println(String.format("%4d", a*(b%10)));
			}
			// 首位上得到的乘积
			System.out.println(String.format("%3d", a*(b/10)));
			System.out.println("━━━");  
		}
		System.out.println(String.format("%4d", a*b)); //乘积结果值
		sc.close();
	}
}

运行示例:

在这里插入图片描述
在这里插入图片描述

©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页