zoukankan      html  css  js  c++  java
  • [模拟]神奇的幻方

    神奇的幻方在这里插入图片描述

    解析
    这是一道很水的水题,方法和条件都给了出来。直接暴力模拟。

    代码

    #include<stdio.h>
    #include<iostream>
    #include<string.h>
    using namespace std;
    int n,a[50][50];
    int main(){
    	scanf("%d",&n);
    	int x,y;
    	x=1;
    	y=n/2+1;
    	a[x][y]=1;
    	for(int i=2;i<=n*n;i++){
       		if(x==1&&y!=n){  //判断是不是满足第一个条件
       			x=n;
        		y++;
       			a[x][y]=i;
        		continue;  //执行完之后,跳到下一次循环。避免会重复执行下面的语句
        	}
       		if(x!=1&&y==n){ //判断是不是满足第二个条件
        		x--;
        		y=1;
        		a[x][y]=i;
        		continue; //同上
        	}
        	if(x==1&&y==n){ //判断是不是满足第三个条件
            	x++;
            	a[x][y]=i;
            	continue; //同上
        	}
        	if(x!=1&&y!=n){ //判断是不是满足第四个条件
            	if(a[x-1][y+1]==0){ //判断第右上角是不是没有填数
            		x--;
            		y++;
            	}
            	else{ //如果填了,就填在他的正下方
            		x++;
           	 	}
            	a[x][y]=i;
            	continue; //同上
        	}
    	}
    	for(int i=1;i<=n;i++){
        	for(int j=1;j<=n;j++){
          		printf("%d ",a[i][j]);
        	}
        	printf("
    "); //记得要换行
    	} 
    	return 0;
    }
    
  • 相关阅读:
    堆优化Dijkstra模版
    poj_1364King
    快速排序库函数qsort的使用
    CMD type命令
    开放地址法
    poj_3159Candies
    poj_1511Invitation Cards
    何谓数据结构
    div ul li添加文本自动自动
    java虚拟机使用内存
  • 原文地址:https://www.cnblogs.com/luojunhang/p/12300166.html
Copyright © 2011-2022 走看看