- C++
一种很新的代码
- 7 months ago @
这个代码的作用是求n的2次幂(基于幻方原理)
说实话 就这个代码 你别看它很长 它性能也拉啊
0 comments
No comments so far...
#include<stdio.h>
#include<cstring>
int line,row = 0;
int maxn = -1;
int m[1000][1000];
int main()
{
int n;
scanf("%d",&n);
if(n <= 0 || n > 1000){
printf("nan");
return 0;
}
memset(m, 0, sizeof(m));
m[0][n / 2] = 1;
line = n / 2;
for(int i = 2; i <= n * n; i++){
if(row == 0 && line != n - 1){
row = n - 1;
line++;
m[row][line] = i;
}
else if(line == n - 1 && row != 0){
row--;
line = 0;
m[row][line] = i;
}
else if(line == n - 1 && row == 0){
row++;
m[row][line] = i;
}
else{
if(m[row - 1][line + 1] == 0){
row--;
line++;
m[row][line] = i;
}
else{
row++;
m[row][line] = i;
}
}
}
for(int i = 0; i < n; i++){
if(m[n - 1][i] > maxn){
maxn = m[n - 1][i];
}
}
printf("%d",maxn);
return 0;
}
这个代码的作用是求n的2次幂(基于幻方原理)
说实话 就这个代码 你别看它很长 它性能也拉啊
By signing up a 美力程青少儿编程 universal account, you can submit code and join discussions in all online judging services provided by us.