看着这样的"回”形图案你晕吗?

输入格式:
n。正方形的边长

输出格式:"%3d"
边长为 n 的数字回形方阵。

测试用例1:
测试输入

3

测试输出

1  2  38  9  47  6  5

测试用例2:
测试输入

4

测试输出

  1  2  3  412 13 14  511 16 15  610  9  8  7
#include<stdio.h>
#include<string.h>

#define max_N 100

int arr[max_N][max_N];

int main(){
	int n;scanf("%d",&n);
	int x=0,y=0,i=0;
	memset(arr,0,sizeof(arr));
	while(i<n*n){
		while(y<n&&!arr[x][y])arr[x][y++]=++i;
		y--;x++;
		while(x<n&&!arr[x][y])arr[x++][y]=++i;
		x--;y--;
		while(y>=0&&!arr[x][y])arr[x][y--]=++i;
		y++;x--;
		while(x>=0&&!arr[x][y])arr[x--][y]=++i;
		x++;y++;
	}
	for(x=0;x<n;x++){
		for(y=0;y<n;y++)printf("%3d",arr[x][y]);
		printf("\n");
	}
	return 0;
}
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Processing 中实现水墨染效果,可以使用 `loadPixels()` 和 `updatePixels()` 函数来访问和修改像素数组。具体来说,可以通过遍历所有的像素,并根据每个像素的位置和颜色值来计算出新的颜色值,然后将新的颜色值赋给像素数组。以下是一个简单的示例代码: ```java PImage img; float threshold = 50; void setup() { size(400, 400); smooth(); img = loadImage("image.jpg"); img.resize(width, height); image(img, 0, 0); } void draw() { loadPixels(); // 遍历所有的像素,并根据颜色值计算出新的颜色值 for (int i = 0; i < pixels.length; i++) { int x = i % width; int y = i / width; int c = pixels[i]; float d = dist(x, y, mouseX, mouseY); if (d < threshold) { float factor = map(d, 0, threshold, 0, 1); float r = red(c) * factor; float g = green(c) * factor; float b = blue(c) * factor; pixels[i] = color(r, g, b); } } updatePixels(); } ``` 在这个示例中,我们首先加载一张图片并将其缩放到和窗口大小相同,然后在 `draw()` 函数中遍历所有的像素,并计算出每个像素和鼠标位置之间的距离。如果距离小于一个阈值 `threshold`,则我们将当前像素的颜色值进行插值,根据距离计算出一个插值因子,并将红、绿、蓝三个颜色通道的值乘以这个插值因子来得到新的颜色值。最后,我们将新的颜色值赋给像素数组,并使用 `updatePixels()` 函数更新画布。你可以根据自己的需求调整阈值、插值因子和颜色通道的权重来得到不同的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值