c语言铺地板,【北理乐学】铺地板

本文介绍了一种使用C语言编程的方法,以'之'字形方式铺设大理石地砖。通过两种不同的解法,一种常规的顺序填充法,另一种是递归求解法,展示了如何生成这种图形。递归解法虽然简洁,但可能会导致较高的内存消耗。建议对动态规划(DP)感兴趣的读者进一步研究,以优化此类问题的运行效率。
摘要由CSDN通过智能技术生成

【题目描述】

有一名室内装潢工程队的配料员。他的伙伴们喜欢采用“之”字型的方式铺大理石地砖,图案例如下:

1     2     6     7     15

3     5     8    14    16

4     9    13    17    22

10   12  18    21    23

11    19  20   24    25

如何用C 语言生成这样的图形。

【题目分析】

初见该题本以为是需要对奇偶进行分类处理(一般看见图形题就需要考虑这一方面),但幸运的是,这道题似乎不需要我们对奇偶进行讨论,似乎所有的用例都是奇数,所以我们只对奇数处理即可。下面我贴两组代码,一个是按贴地板的顺序依次填充的,另一部分则是运用递归对通项进行求解。

【常规解法】

#include

#include

#define maxn 20

int a[maxn][maxn];

int main(){

memset(a,0,sizeof(a));

int n, i=0,x,y;

scanf("%d",&n);

a[x=0][y=0]=++i;

while(i

if(y+1<=n){

a[x][++y]=++i;

}

while(y-1>=0&&x+1<=n){

a[++x][--y]=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值