输入一个数字n,输出一个n层的特定三角形,三角形内数字增长是有规律的。
输入格式:
1个整数n,1<=n<=10
输出格式:
特定样式三角形
输入样例:
5
输出样例:
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n); //三角形的层数
for (int i = 1; i < n + 1; i++)//控制行
{
int a = i; //a做一个标记,本题所述的是竖向自增
int b = n; //b表示横向自增一开始自增的数量
for (int j = 1; j < n - i+2; j++)//控制列
{
printf("%-4d",a); //横向自增是自增数减小的
a += b;
b -= 1; //每次自增数减少
}
printf("\n");
}
return 0;
}
1 6 10 13 15
2 7 11 14
3 8 12
4 9
5
通过本题这个竖向自增三角形是不是可以引发思考,还有横向的自增倒三角
这里也我也给出了一些自己的想法,多多尝试就能更加了解循环的嵌套
#include <stdio.h>
int main()
{
int n;
int x;
scanf("%d", &n);
for (int i = 1; i < n+1; i++) //控制行
{
for (int k = 1; k < i; k++)//这里控制的是前面的空格,为了格式美观,大家可以自行发挥哈
{
printf(" ");//因为上一个是直角边靠左这次就打印一个靠右吧
}
if (i < 2)//因为第一行是不需要打印空格的
{
int j;
for (j = i; j < n + 1; j++)
{
printf("%-4d", j);
}
x = j;//当一行打印完之后给第二行给定一个开始值,这里用x做标记
}
else //第一行后面的开始打印
{
for (int j = i; j < n + 1; j++)
{
printf("%-4d", x);
x++;//后面的每一个值都需要自增,所以就用x做标记了
}
}
printf("\n");
}
}
这里也只是给了我的一些想法,有兴趣的小伙伴多多尝试,这样能更好的理解循环嵌套
这个方法绝对不是最好的方法,我相信大家肯定还有更好的方法,如果有更好的方法希望大家可以和我分享分享~~