题解
输出竖式
1 条题解
-
0
解题思路
这道题要求输出一道加法竖式:18 + 870 = 888。先观察输出格式,一共 4 行:
18 + 870 ------ 888- 第 1 行是第一个加数 18;
- 第 2 行是
+ 870,注意开头有一个空格,加号前面也有一个空格; - 第 3 行是 6 个减号组成的横线,相当于竖式里的等号;
- 第 4 行是结果 888,前面有 3 个空格。
为什么是这个样子?因为这是竖式计算的规范写法:加号写在第二个加数的左边,两个加数的个位对齐,横线下面是结果。
这类“照格式输出”的题,最难的其实不是计算,而是空格一个都不能错。数空格是最容易出错的地方,建议的做法是:先数好每行的空格数,在代码注释里标出来。比如第 4 行
888前面有 3 个空格,这样才能让 888 的个位和上面 870 的个位大致对齐。这道题没有任何输入,输出的 4 行内容都是固定的,所以直接原样输出即可。18+870=888 可以先在草稿纸上算好写进代码,也可以让程序帮我们算——下面代码采用直接输出固定字符串的方式,最简单也最可靠。
参考代码
#include <iostream> using namespace std; int main() { // 第1行:第一个加数18 cout << "18" << endl; // 第2行:开头1个空格+加号+空格+第二个加数870 cout << " + 870" << endl; // 第3行:6个减号组成的横线,表示等号 cout << "------" << endl; // 第4行:开头3个空格+结果888,让个位对齐 cout << " 888" << endl; return 0; }复杂度分析
程序没有输入,只输出固定的 4 行文本,输出的内容量固定,不随任何数据变化。所以时间复杂度是 O(1),空间复杂度同样是 O(1)。
这类“打印固定图案、固定竖式”的题,输出行数和每行的长度都是定死的,运行时间当然也是定死的,不受数据影响。
- 1