螺旋阵列

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/*       C++奋斗乐园|C++论坛|算法论坛|ACM/ICPC论坛
 
                 82   81   80   79   78   77   76   75   74   73
 
                 83   50   49   48   47   46   45   44   43   72
 
                 84   51   26   25   24   23   22   21   42   71
 
                 85   52   27   10    9    8    7   20   41   70
 
                 86   53   28   11    2    1    6   19   40   69
 
                 87   54   29   12    3    4    5   18   39   68
 
                 88   55   30   13   14   15   16   17   38   67
 
                 89   56   31   32   33   34   35   36   37   66
 
                 90   57   58   59   60   61   62   63   64   65
 
                 91   92   93   94   95   96   97   98   99  100*/
 
 
//看到这个方阵,一想到的就是找规律。这个题目规律只有两个 转圈 自加
//转圈就要给数组元素定位,主要做的工作就是找规律然后根据规律用for简化,然后再赋值。
//如果把一圈当作一个循环的话,那整体循环N/2次
 
#include <iostream>
using  namespace  std;
int  main()
{
         const  int  N=10; //这个就不说了
         
         //先建立一个二维数组
         int  a[N][N];
         
         //为了观察运行出的错,先把数组各个元素通通赋为0吧,这样一来,有什么错误在运行时候,一看就能看出来。
         for ( int  i=0;i<N;i++)
                 for ( int  j=0;j<N;j++)
                 {
                         a[i][j]=0;
                 }
         
         
         
         //试了一下从1赋值,感觉很费事,还是从后往前推吧,最后一个数字是N*N
         int  last=N*N;
         int  n=N;    //中间变量。
         int  i=n-1,j; //第一个循环要用到i(第54行),所以赋个初值
         for ( int  k=0;k<N/2;k++) //如果把一圈当作一个循环的话,那整体循环N/2次
         {
                 
                 for (j=n-1;j>k;j--) //给100-92赋值
                         a[i][j]=last--;
                 for (i=n-1;i>k;i--) //给91-83赋值
                         a[i][j]=last--;
                 for (;j<n-1;j++)   //给82-74赋值
                         a[i][j]=last--;
                 for (;i<n-1;i++)   //给73-65
                         a[i][j]=last--;
                 //最外面的一圈赋值完成了,进行下一圈。
                 n--;i--;
         }
         
         //显示数组各个元素
         for ( int  i=0;i<N;i++)
         for ( int  j=0;j<N;j++)
         {
                 cout<<a[i][j]<< "\t" ;
                 if (j==N-1)         //这要注意换行。
                         cout<<endl<<endl;
         }
         return  0;
}
相关文章
|
7月前
|
传感器 芯片
一款完整的单节锂离子电池采用恒定电流/恒定电压线性充电器
一、基本概述 TX5806是一款完整的单节锂离子电池采用恒定电流/恒定电压线性充电器。芯片外部元件少,使芯片成为便携式应用的理想选择。芯片可以适合 USB 电源和适配器电源工作。由于采用了内部P-MOS架构,加上防倒充电路,所以不需要外部隔离二极管。热反馈可对充电电流进行自动调节,以便在大功率操作或高环境温度 条件下对芯片温度加以限制。 充电电压固定于 4.2V,而充电电流可通过一个外部电阻进行设置。当充电电流在达到最终浮充电压之后降至设定值 1/10 时,芯片将自动终止充电循环。当输入电压被拿掉时,芯片自动进入一个低电流状态,将电池漏电流降至 2uA 以下。芯片在有电源时也可置于停机模
一款完整的单节锂离子电池采用恒定电流/恒定电压线性充电器
|
4月前
【光波电子学】MATLAB绘制光纤中线性偏振模式LP之单模光纤的电场分布(光斑)
该文章介绍了如何使用MATLAB绘制单模光纤中线性偏振模式LP₀₁的电场分布,并提供了相关的数学公式和参数用于模拟光纤中的光斑分布。
52 0
|
调度 SoC Windows
基于蒙特卡洛的电动车有序充放电(Matlab代码实现)
基于蒙特卡洛的电动车有序充放电(Matlab代码实现)
143 0
基于三相坐标系状态方程的感应电动机起动动态计算(Matlab代码实现)
基于三相坐标系状态方程的感应电动机起动动态计算(Matlab代码实现)
|
7月前
[贴装专题] 基于halcon的最小二乘法计算吸嘴或机械轴旋转中心
[贴装专题] 基于halcon的最小二乘法计算吸嘴或机械轴旋转中心
195 0
NSDT 3D孪生场景搭建:阵列摆放详解
阵列摆放:通过修改模型属性行数、列数、层数、行间距、列间距等属性完成阵列摆放。
282 0
|
内存技术
超实用总结,一文通吃所有整流滤波电路
超实用总结,一文通吃所有整流滤波电路
107 0
|
算法 C语言
红外热成像仪测温模块 阵列插值-由 32*24 像素到 512*384 像素
MLX90640 的 32*24=768 像素虽然比以往的 8*8 或者 16*8 像素提高了很多,但若直接用这些像素还是不能很好的形成热像图,为了使用这些像素点平滑成像就需要对其进行插值,使用更多的像素来绘制图像。 看了一些别人的算法,感觉主要就是多项式插值,仅是插值方法的组合方式不同。
红外热成像仪测温模块 阵列插值-由 32*24 像素到 512*384 像素
MOOG G123-825-001 将旋转电机的旋转力转化为线性运动
MOOG G123-825-001 将旋转电机的旋转力转化为线性运动
149 0
MOOG G123-825-001 将旋转电机的旋转力转化为线性运动
|
机器学习/深度学习 传感器 算法
【有序充电】基于蒙特卡诺和拉格朗日乘子法模拟电动车有序和无序充电附matlab代码
【有序充电】基于蒙特卡诺和拉格朗日乘子法模拟电动车有序和无序充电附matlab代码