题目链接:P5725 【深基4.习8】求三角形 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
知识点:循环结构
题目大意:输入一个不大于9的数按照所给样例的规律,先输出正方形,再空一行,输出三角形
解题思路:首先观察样例的输出,需要用到二维数组。正方形的话即输入的数是几就是几行且每行的每个数的长度单位都为2若为<10的数需自动补零。 必须空一行。三角形中的数按照从1开始的增序排列的,空格是递减的同样的数<10需要补零
AC代码如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
int sum=1;
cin>>n;
for(int i=0;i<n;i++)//双重循环,读入二维数组
{
for(int j=0;j<n;j++)
{
printf("%02d",sum);//02d表示(不满10)补零
sum++;//递加
}
printf("\n");//到n自动换行
}
printf("\n");//格式要求需进行换行
int ans=n-1;//第一行有一个所以从n-1开始
sum=1;//sum也从1开始
for(int i=1;i<=n;i++)
{
for(int j=1;j<=ans;j++)//先输出空格
{
printf(" ");//表示每行的空格
}
for(int j=1;j<=n-ans;j++)//再输出具体的数
{
printf("%02d",sum);
sum++;//从1开始递增
}
ans--;//ans与空格相关,空格是递减的
printf("\n");
}
return 0;
}