特殊三角形

输入一个数字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");
	}
}

 

这里也只是给了我的一些想法,有兴趣的小伙伴多多尝试,这样能更好的理解循环嵌套 

这个方法绝对不是最好的方法,我相信大家肯定还有更好的方法,如果有更好的方法希望大家可以和我分享分享~~


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值