📄 螺旋方阵--fevernova的博客.htm
字号:
style="FONT-SIZE: 12pt; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 宋体"><SPAN
style="mso-spacerun: yes"> </SPAN>32<SPAN style="mso-spacerun: yes">
</SPAN>11
<P></SPAN></P>
<P class=MsoPlainText
style="TEXT-INDENT: 132pt; LINE-HEIGHT: 12pt; mso-char-indent-count: 11.0; mso-char-indent-size: 12pt; tab-stops: 595.4pt 641.2pt 687.0pt 732.8pt; mso-line-height-rule: exactly"><SPAN
lang=EN-US
style="FONT-SIZE: 12pt; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 宋体">20<SPAN
style="mso-spacerun: yes"> </SPAN></SPAN><B><I><SPAN lang=EN-US
style="FONT-SIZE: 12pt; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 宋体; mso-fareast-font-family: 黑体">37</SPAN></I></B><SPAN
lang=EN-US
style="FONT-SIZE: 12pt; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 宋体"><SPAN
style="mso-spacerun: yes"> </SPAN>36<SPAN style="mso-spacerun: yes">
</SPAN>35<SPAN style="mso-spacerun: yes"> </SPAN>34 </SPAN><B><SPAN
lang=EN-US
style="FONT-SIZE: 12pt; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 宋体; mso-fareast-font-family: 黑体"><SPAN
style="mso-spacerun: yes"> </SPAN><I>33</I></SPAN></B><SPAN lang=EN-US
style="FONT-SIZE: 12pt; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 宋体"><SPAN
style="mso-spacerun: yes"> </SPAN>12
<P></SPAN></P>
<P class=MsoPlainText
style="TEXT-INDENT: 131.45pt; LINE-HEIGHT: 12pt; mso-char-indent-count: 10.91; mso-char-indent-size: 12pt; tab-stops: 595.4pt 641.2pt 687.0pt 732.8pt; mso-line-height-rule: exactly"><B><I><SPAN
lang=EN-US
style="FONT-SIZE: 12pt; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 宋体; mso-fareast-font-family: 黑体">19</SPAN></I></B><SPAN
lang=EN-US
style="FONT-SIZE: 12pt; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 宋体"><SPAN
style="mso-spacerun: yes"> </SPAN>18<SPAN style="mso-spacerun: yes">
</SPAN>17<SPAN style="mso-spacerun: yes"> </SPAN>16<SPAN
style="mso-spacerun: yes"> </SPAN>15<SPAN style="mso-spacerun: yes">
</SPAN>14<SPAN style="mso-spacerun: yes"> </SPAN></SPAN><B><I><SPAN
lang=EN-US
style="FONT-SIZE: 12pt; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 宋体; mso-fareast-font-family: 黑体">13</SPAN></I></B><I><SPAN
lang=EN-US
style="FONT-SIZE: 12pt; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 宋体">
<P></SPAN></I></P>
<P class=MsoPlainText
style="TEXT-INDENT: 30pt; tab-stops: 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
style="FONT-SIZE: 12pt; mso-bidi-font-size: 10.0pt">为叙述方便我们称四个区域为上、下、左、右区。设<SPAN
lang=EN-US>i、j为行列号,n为图形的总行数,则满足各区的范围是:
<P></SPAN></SPAN></P>
<P class=MsoPlainText
style="TEXT-INDENT: 54pt; mso-char-indent-count: 4.5; mso-char-indent-size: 12pt; tab-stops: 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
style="FONT-SIZE: 12pt; mso-bidi-font-size: 10.0pt">上区:<SPAN
lang=EN-US>j>=i且j<=n-i+1
<P></SPAN></SPAN></P>
<P class=MsoPlainText
style="TEXT-INDENT: 54pt; mso-char-indent-count: 4.5; mso-char-indent-size: 12pt; tab-stops: 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
style="FONT-SIZE: 12pt; mso-bidi-font-size: 10.0pt">下区:<SPAN
lang=EN-US>j<=i且j>=n-i+1
<P></SPAN></SPAN></P>
<P class=MsoPlainText
style="TEXT-INDENT: 54pt; mso-char-indent-count: 4.5; mso-char-indent-size: 12pt; tab-stops: 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
style="FONT-SIZE: 12pt; mso-bidi-font-size: 10.0pt">左区:<SPAN
lang=EN-US>j<i且j<n-i+1
<P></SPAN></SPAN></P>
<P class=MsoPlainText
style="TEXT-INDENT: 54pt; mso-char-indent-count: 4.5; mso-char-indent-size: 12pt; tab-stops: 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
style="FONT-SIZE: 12pt; mso-bidi-font-size: 10.0pt">右区:<SPAN
lang=EN-US>j>i且j>n-i+1
<P></SPAN></SPAN></P>
<P class=MsoPlainText
style="TEXT-INDENT: 24pt; LINE-HEIGHT: 12pt; mso-char-indent-count: 2.0; mso-char-indent-size: 12pt; tab-stops: 595.4pt 641.2pt 687.0pt 732.8pt; mso-line-height-rule: exactly"><SPAN
style="FONT-SIZE: 12pt; mso-bidi-font-size: 10.0pt">现在问题是,如果知道一行在不同区域开始第一个位置的数字,然后该区后续的数字就可利用前面分析的规律得到。<SPAN
lang=EN-US>
<P></SPAN></SPAN></P>
<P class=MsoPlainText
style="TEXT-INDENT: 24pt; LINE-HEIGHT: 12pt; mso-char-indent-count: 2.0; mso-char-indent-size: 12pt; tab-stops: 595.4pt 641.2pt 687.0pt 732.8pt; mso-line-height-rule: exactly"><SPAN
style="FONT-SIZE: 12pt; mso-bidi-font-size: 10.0pt">对于右区开始各行第一个数字最易求出,为<SPAN
lang=EN-US>4*(n-1)-i+1。后续一个和同行前一个数字之差是4*[n-1-(j-1)*2]+1,其中方括号内是每边的数字个数。
<P></SPAN></SPAN></P>
<P class=MsoPlainText
style="TEXT-INDENT: 24pt; LINE-HEIGHT: 12pt; mso-char-indent-count: 2.0; mso-char-indent-size: 12pt; tab-stops: 595.4pt 641.2pt 687.0pt 732.8pt; mso-line-height-rule: exactly"><SPAN
style="FONT-SIZE: 12pt; mso-bidi-font-size: 10.0pt">对角线上的数字是分区点,对角线上相临数字仍然相差一圈数字个数,读者自行分析得到计算公式。<SPAN
lang=EN-US>
<P></SPAN></SPAN></P>
<P class=MsoPlainText
style="TEXT-INDENT: 24pt; LINE-HEIGHT: 12pt; mso-char-indent-count: 2.0; mso-char-indent-size: 12pt; tab-stops: 595.4pt 641.2pt 687.0pt 732.8pt; mso-line-height-rule: exactly"><SPAN
style="FONT-SIZE: 12pt; mso-bidi-font-size: 10.0pt">右区开始的第一个数字可以从上区结束时的数字按规律求出。<SPAN
lang=EN-US>
<P></SPAN></SPAN></P>
<P class=MsoPlainText
style="TEXT-INDENT: 24pt; LINE-HEIGHT: 12pt; mso-char-indent-count: 2.0; mso-char-indent-size: 12pt; tab-stops: 595.4pt 641.2pt 687.0pt 732.8pt; mso-line-height-rule: exactly"><SPAN
style="FONT-SIZE: 12pt; mso-bidi-font-size: 10.0pt">下述程序用变量<SPAN
lang=EN-US>s保存分区对角线上的数字。
<P></SPAN></SPAN></P>
<P class=MsoPlainText style="tab-stops: 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
style="FONT-SIZE: 12pt; mso-bidi-font-size: 10.0pt">参考答案:<SPAN lang=EN-US>
<P></SPAN></SPAN></P>
<P class=MsoPlainText
style="mso-char-indent-size: 12pt; tab-stops: 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
lang=EN-US
style="FONT-SIZE: 12pt; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 宋体">main(
)
<P></SPAN></P>
<P class=MsoPlainText
style="mso-char-indent-size: 12pt; tab-stops: 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
lang=EN-US
style="FONT-SIZE: 12pt; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 宋体">{<SPAN
style="mso-spacerun: yes"> </SPAN><SPAN
style="mso-spacerun: yes"> </SPAN>int i,j,k,n,s,m,t;
<P></SPAN></P>
<P class=MsoPlainText
style="mso-char-indent-size: 12pt; tab-stops: 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
lang=EN-US
style="FONT-SIZE: 12pt; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 宋体"><SPAN
style="mso-spacerun: yes"> </SPAN><SPAN style="mso-spacerun: yes">
</SPAN><SPAN style="mso-spacerun: yes"> </SPAN>printf("Please enter
n:");
<P></SPAN></P>
<P class=MsoPlainText
style="mso-char-indent-size: 12pt; tab-stops: 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
lang=EN-US
style="FONT-SIZE: 12pt; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 宋体"><SPAN
style="mso-spacerun: yes"> </SPAN><SPAN style="mso-spacerun: yes">
</SPAN><SPAN style="mso-spacerun: yes"> </SPAN>scanf("%d",&n);
<P></SPAN></P>
<P class=MsoPlainText
style="mso-char-indent-size: 12pt; tab-stops: 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
lang=EN-US
style="FONT-SIZE: 12pt; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 宋体"><SPAN
style="mso-spacerun: yes"> </SPAN><SPAN style="mso-spacerun: yes">
</SPAN><SPAN style="mso-spacerun: yes"> </SPAN>for (i=1;i<=n;i++)
<P></SPAN></P>
<P class=MsoPlainText
style="mso-char-indent-size: 12pt; tab-stops: 595.4pt 641.2pt 687.0pt 732.8pt"><SPAN
lang=EN-US
style="FONT-SIZE: 12pt; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: 宋体"><SPAN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -