[ABC335D]

这篇文章描述了如何在已知的P5731蛇形方阵基础上,在中心位置输出心脏字符,其余部分按照蛇形规律填充。代码展示了如何使用C++实现这个特定的二维数组输出问题。
摘要由CSDN通过智能技术生成

这道题与P5731 蛇形方阵相似,只是在中心位置输出心脏,外面直接一圈一圈地循环就行了。

Code:

#include <bits/stdc++.h>
#define int long long
using namespace std;
int n, a[55][55];
int k = 1, x = 1, y;
signed main() {
	cin >> n;
	while (k < n * n) {
		while (y < n && !a[x][y + 1]) a[x][ ++ y] = k ++ ;
		while (x < n && !a[x + 1][y]) a[ ++ x][y] = k ++ ;
		while (y > 1 && !a[x][y - 1]) a[x][ -- y] = k ++ ;
		while (x > 1 && !a[x - 1][y]) a[ -- x][y] = k ++ ;
	} // P5731部分
	for (int i = 1; i <= n; i ++ , cout << '\n')
		for (int j = 1; j <= n; j ++ ) {
			if (i == j && i == (n + 1) / 2) cout << "T"; // 唯一不同之处
			else cout << a[i][j];
			putchar(' ');
		}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值