level 3
现在好多东西还没学,只学到了二维数组
求教,要能看得懂的
想了一个星期了...
2011年12月23日 08点12分
1
level 10
哦,等我解决它发给你
题目是不是这样子
生成一个螺旋方式排列自然数1,2,……,N*N的N阶方阵。N=5时方阵如下:
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
2012年01月01日 08点01分
6
level 10
- -,要逐个打印,先打口,下次再在里面打口,变成回,知道中间
2012年01月03日 05点01分
8
level 1
var
a:array[0..101,0..101] of longint;
r,i,f,k,n,x,y,j:integer;
begin
read(n);
f:=1;
k:=n;
x:=1;
while r<n*n do
begin
for i:=1 to k do
begin
y:=y+f;
inc(r);
a[x,y]:=r;
end;
k:=k-1;
for i:=1 to k do
begin
x:=x+f;
inc(r);
a[x,y]:=r;
end;
if f=1 then f:=-1 else f:=1;
end;
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:5);
writeln;
writeln;
writeln;
writeln;
end;
end.
2014年11月23日 13点11分
9
没这个必要,直接输出r,然后writeln
2015年01月10日 12点01分
level 11
..lz应该锻炼一下自己的数学水平,推出【i,j】的公式。。然后两层for
2015年01月17日 01点01分
10
level 3
输入一个正整数N(1<=N<=50)后,可以得到一个N*N的数字螺旋方阵,输出螺旋方阵中主对角线(左上角到右下角)上所有数字的乘积。
比如N=5时得到的数字螺旋方阵如下:
主对角线上所有数字的成绩等于1*17*25*21*9=80325
【输入格式】
输入只有一行,一个正整数N。
【输出格式】
输出只有一行,即数字螺旋方阵主对角线上所有数字的乘积。
【输入输出样例】
lxfz.in lxfz.out
5 80325
【数据范围】
1<=n<=50
2015年07月01日 07点07分
11
level 8
#include <iostream>
#include <cstdio>
#include <cmath>
#include <iomanip>
#include <cstring>
#include <cstdlib>
#include <fstream>
using namespace std;
int a[12][12];
int main()
{
int n,i,j,k,t;
cin>>n;
memset(a,0,sizeof(a));
for (i=0;i<=n;++i) {a[0][i]=1; a[i][0]=1;a[n+1][i]=1;a[i][n+1]=1;}
a[n+1][n+1]=1;
a[0][0]=0;
a[n+1][0]=0;
a[0][n+1]=0;
a[n+1][n+1]=0;
t=1;
i=1;
j=n;
while(t<=n*n)
{
while(a[i-1][j]>0&&a[i][j+1]>0&&a[i][j]==0) {a[i][j]=t; t++; i++;}
i--;j--;
while(a[i+1][j]>0&&a[i][j+1]>0&&a[i][j]==0) {a[i][j]=t; t++; j--;}
i--;j++;
while(a[i][j-1]>0&&a[i+1][j]>0&&a[i][j]==0) {a[i][j]=t; t++; i--;}
i++;j++;
while(a[i][j-1]>0&&a[i-1][j]>0&&a[i][j]==0) {a[i][j]=t; t++; j++;}
i++;j--;
}
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
cout<<setw(5)<<a[i][j];
cout<<endl;
}
return 0;
}
2015年09月18日 05点09分
12