avatar

目录
题解 P5721 【【深基4.例6】数字直角三角形】

稍微有点技巧。

首先,不足的要以0代替,这时,我们可以用上setfill('0'),这时,填充的数都是0.

接着看每行输出几个数。

可以看出,如果输入$a$的话,那么第一行有$a$个数,第二行有$a-1$个数,第三行有$a-2$个数……以此类推。

输出的话,从1开始。

那么,我们可以用双重循环,$i$从0到$n-1$,$j$从0到$n-i-1$.

最后,送上代码:

cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<bits/stdc++.h>
using namespace std;

int main(){
int n;
cin>>n;
int now=1;//一开始是1
cout<<setfill('0');
for(int i=0;i<n;++i/*n行*/){
for(int j=0;j<n-i;/*每行n-i个数*/++j){
cout<<setw(2)<<now;//设置场宽为2,不足两位因为上面的setfill,填充的是0.
now++;
}
cout<<endl;
}
return 0;
}

文章作者: lianjiaming
文章链接: http://lianjiaming.github.io/2020/03/11/solution-P5721/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Jimmy_Lian的博客

评论