给出n(1≤n≤13),请输出一个直角边长度是 n 的数字直角三角形。所有数字都是 2 位组成的,如果没有 2 位则加上前导 0。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,num=1;
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=i;j<=n;j++) //j从i开始循环
{
if(num<10) cout<<0<<num;
else cout<<num;
num++;
}
cout<<endl; //在外层循环换行
}
return 0;
}
拓展:
提问:如果想从上到下递增输出怎么操作?
改一下内层循环条件j即可。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,num=1;
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=i;j++) //j从1开始循环,到i停止
{
if(num<10) cout<<0<<num;
else cout<<num;
num++;
}
cout<<endl; //在外层循环换行
}
return 0;
}
输出如下:
那再换一种形式输出又怎么改呢?
在内层循环加一个空格的输出就行。(空格要按两下)
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,num=1;
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n-i;j++) //控制输出空格
cout<<" ";
for(int j=1;j<=i;j++) //j从i开始循环,到i停止
{
if(num<10) cout<<0<<num;
else cout<<num;
num++;
}
cout<<endl; //在外层循环换行
}
return 0;
}
输出如下: