打印任意行(N)菱形

利用嵌套循环进行 任意行(N)菱形的输出;

思路:从特殊到一般;(找规律)

先考虑N=7时的菱形:

 

                                                                                                                                    递推式;

我们分别让行标(i)从上到下依次为:  -3      -2     -1     0      -1    -2    -3    -4              i

每行的空格数为:                                    3       2      1      0      1      2     3      4           abs(i)

每行  的个数为:                                  1        3      5      7      4      5     3      1     

                                                                                               *的递推式为((-abs(i)+(n+1))*2-1

   其中(n+1)的意义为上等腰三角形的行数,及为 n=(N-1)/2+1;

下面为具体代码:

'''c
#include<stdio.h>
#include<math.h>
int main()//打印任意行菱形;
{
	int i = 0;
	int j = 0;
	int N;
	int n;
	scanf("%d", &N);//N一;般为奇数
	n = (N - 1) / 2;//若为偶数则打印偶数-1的奇数下的菱形;
	for (i = -n; abs(i) <=n; i++)
	{
		for (j = 1; j <= abs(i); j++)
			printf(" ");
		for (j = 1; j <= ((-abs(i) +(n+1) ) * 2 - 1); j++)
			printf("*");
		printf("\n");
	}
	return 0;
}

例:输入17;(此处需注意输入的N为奇数和偶数的情况)

输出:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值