题目链接:P5721
你不会相信,上面那个链接可以点进去
题目描述
给出n
(1≤n≤13
),请输出一个直角边长度是 n
的数字直角三角形。所有数字都是 2
位组成的,如果没有 2
位则加上前导 0
。
题目看不懂,直接看输入输出样例
输入#1:
5
输出#1:
0102030405
06070809
101112
1314
15
代码实现
定义输入不解释
int n;
cin>>n;
接下来,创建一个计数器变量,用于存储当前数字
int cnt=1; //变量初始化,设为1是因为三角形从1开始
第一个循环,控制三角形的换行
for(int i=0;i<n;i++) {
/*
//其余代码
*/
cout<<endl; //cout<<'\n';
}
第二个循环,控制内部输出
for(int i=0;i<n;i++) {
for(int j=0;j<n-i;j++) {
/*
//题目中已提到,如果当前数字小于十,就补0,所以这里是判断代码
*/
}
cout<<endl; //cout<<'\n';
}
if
语句判断当前数字是否小于10
。是,补0
再输出;否,直接输出
if(cnt>10) cout<<0<<cnt;
else cout<<cnt;
最后,cnt
累加
cnt++;
整合代码如下:
#include <bits/stdc++.h>
using namespace std;
int main ()
{
int n;
cin>>n;
int cnt=1;
for(int i=0;i<n;i++) {
for(int j=0;j<n-i;j++) {
if(cnt<10) cout<<0<<cnt;
else cout<<cnt;
cnt++;
}
cout<<endl;
}
return 0;
}