解题思路:
瞎写的,不知道为什么错......


注意事项:

参考代码:

#define _CRT_SECURE_NO_WARNINGS

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <math.h>
#include <stdio.h>

using namespace std;

char A[7][4];

void solve(int a, int b)
{
	int res = a * b;
	A[0][3] = a % 10 + '0';
	A[0][2] = (a / 10 == 0 && (int)log(a) + 1 < 2 ? ' ' : a / 10 + '0');
	A[1][0] = '*';
	A[1][1] = (b / 10 == 0 && (int)log(b) + 1 < 2 ? ' ' : b / 10 + '0');
	A[1][2] = b % 10 + '0';
	A[2][0] = A[2][1] = A[2][2] = '-';
	int temp1 = (b % 10)*a, temp2 = (b / 10)*a;
	A[3][3] = temp1 % 10 + '0';
	A[3][2] = (temp1 / 10 % 10 == 0 && (int)log(temp1) + 1 < 2 ? ' ' : temp1 / 10 % 10 + '0');
	A[3][1] = (temp1 / 100 == 0 && (int)log(temp1) + 1 < 3 ? ' ' : temp1 / 100 + '0');
	if (temp2 == 0) return;
	A[4][2] = temp2 % 10 + '0';
	A[4][1] = (temp2 / 10 % 10 == 0 && (int)log(temp2) + 1 < 2 ? ' ' : temp2 / 10 % 10 + '0');
	A[4][0] = (temp2 / 100 == 0 && (int)log(temp2) + 1 < 3 ? ' ' : temp2 / 100 + '0');
	A[5][0] = A[5][1] = A[5][2] = '-';
	A[6][3] = res % 10 + '0';
	A[6][2] = (res / 10 % 10 == 0 && (int)log(res) + 1 < 2 ? ' ' : res / 10 % 10 + '0');
	A[6][1] = (res / 100 == 0 && (int)log(res) + 1 < 3 ? ' ' : res / 100 % 10 + '0');
	A[6][0] = (res / 1000 == 0 && (int)log(res) + 1 < 4 ? ' ' : res / 1000 + '0');
}

void clearA()
{
	for (int i = 0; i < 7; i++)
	{
		for (int j = 0; j < 4; j++)
		{
			if (A[i][j] == '\0' || A[i][j] == ' ')
				continue;
			else if (A[i][j] == '0')
			{
				A[i][j] = '\0';
				break;
			}
			else if (A[i][j] >= '1' && A[i][j] <= '9')
				break;
		}
	}
	if (A[3][0] == '\0' && A[3][1] == ' ' && A[3][2] == ' ' && A[3][3] == '\0')
		A[3][2] = A[3][3] = '0';
	if (A[4][0] == '\0' && A[4][1] == ' ' && A[4][2] == ' ' && A[4][3] == '\0')
		A[4][2] = A[4][3] = '0';
}

int main(int argc, char** argv)
{
	int a, b;
	cin >> a >> b;
	solve(a, b);
	clearA();
	for (int i = 0; i < 7; i++)
	{
		for (int j = 0; j < 4; j++)
		{
			if (A[i][j] == '*')
				cout << "×";
			else if (A[i][j] == '-')
			{
				cout << "━━━";
				break;
			}
			else
				cout << A[i][j];
		}
		cout << endl;
	}
	return 0;
}


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论