SDUST 作业10 Problem D 魔方阵
Description
Input
输入包含多组数据,每组为一个小于100的正奇数。
Output
对于每个输入的N,输出N阶魔方阵;两组数据之间用一个空行分隔。方阵中每行每两个数之间有一个空格,行首和行末没有多余的空格。
Sample Input
Sample Output
HINT
Append Code
这道题需要注意的地方是边界处理,采用的技巧有取余和边测边写
1 #include <stdio.h> 2 #include <string.h> 3 int a[105][105]; 4 int main(){ 5 int n; 6 int k=0; 7 while(scanf("%d",&n)!=EOF){ 8 if(!k)k=1;else printf("\n"); 9 memset(a,0,sizeof(a)); 10 a[0][n/2]=1; 11 int r=0,c=n/2; 12 int r0=0,c0=n/2; 13 for(int i=2;i<=n*n;i++){ 14 r=((r+n)-1)%n; 15 c=((c+n)+1)%n; 16 if(a[r][c]||(r0==0&&c0==n-1)){ 17 a[r0+1][c0]=i; 18 r=r0+1;c=c0; 19 } 20 else{ 21 a[r][c]=i; 22 } 23 r0=r;c0=c; 24 } 25 for(int i=0;i<n;i++){ 26 for(int j=0;j<n-1;j++){ 27 printf("%d ",a[i][j]); 28 } 29 if(n)printf("%d",a[i][n-1]); 30 printf("\n"); 31 } 32 } 33 return 0; 34 }
转载于:https://www.cnblogs.com/Wade-/p/6159283.html
SDUST 作业10 Problem D 魔方阵相关推荐
- 任意阶魔方阵matlab程序,【精品】任意阶魔方阵算法(c语言)
n阶幻方是由前n^2(n的2次方)个自然数组成的一个n阶方阵,其各行.各列及两条对角线所含的n个数的和相等.洛书就是最基本的3×3阶魔方阵,做出某种最恰当的决定,横竖都有3个格. 0的倒数 a-1可以 ...
- 输入一个自然数N,要求输出如下的魔方阵,即边长为N*N,元素取值为1至N*N,1在左上角,呈顺时针方向依次放置各元素。
输入一个自然数N(2<N<9),要求输出如下的魔方阵,即边长为NN,元素取值为1至NN,1在左上角,呈顺时针方向依次放置各元素. N=3时: 1 2 3 8 9 4 7 6 5 [输入样例 ...
- 判断魔方阵c语言程序设计_魔方阵算法及C语言实现
1 魔方阵概念 2填充的,每一行.每一列.对角线之和均相等的方阵,阶数n = 3,4,5-.魔方阵也称为幻方阵. 例如三阶魔方阵为: 魔方阵有什么的规律呢? 魔方阵分为奇幻方和偶幻方.而偶幻方又分为是 ...
- 打印魔方阵(C语言)
魔方阵是这样的方阵:它的每一行,每一列和对角线之和均相等. 输入n,要求打印由自然数构成的魔方阵(n为奇数) 魔方阵中各数排列规律如下: (1)将"1"放在第一行的中间一列: (2 ...
- c0604 旋转魔方阵
[问题描述] 输入一个自然数N(2≤N≤9),要求输出如下的魔方阵,即边长为NN,元素取值为1至NN,1在左上角,呈顺时针方向依次放置各元素. N=3时: 1 2 3 8 9 4 7 6 5 [输入形 ...
- Matlab之魔方阵magic
1.函数功能 magic函数是用于创建魔方阵.魔方阵的特点是:每行每列以及对角线的元素之和相等的方阵. 2.代码示例 clc; clear all;A = magic(4) sum(A(1,:)) % ...
- C语言程序设计谭浩强(第四版)部分课后习题作答——第六章-输出杨辉三角,输出魔方阵
代码: 杨辉三角题目较为简单,魔方阵题目实现了输出任意整数即可输出对应的魔方阵 #include<stdio.h> #include<stdlib.h> #include< ...
- Java: 打印魔方阵
输入一个自然数N(2≤N≤9),要求输出如下的魔方阵,即边长为N*N,元素取值为1至N*N,1在左上角,呈顺时针方向依次放置各元素. N=3时: 1 2 3 8 ...
- 奇数魔方阵c语言程序设计,《C语言程序》课程设计报告书魔方阵程序设计
<<C语言程序>课程设计报告书魔方阵程序设计>由会员分享,可在线阅读,更多相关<<C语言程序>课程设计报告书魔方阵程序设计(17页珍藏版)>请在人人文库 ...
- C语言基础算法:魔方阵
C语言基础算法:魔方阵. 核心玩法:第一个元素放置第一排(第0行)中间位置,依次往右上方填充数据, 若是 1.右上角行,列越界,该元素放置上一元素下方a(i+2)(j-1)位置 2.右上角行越界,而列 ...
最新文章
- 干货丨从硬件配置到框架选择,请以这种姿势入坑深度学习
- vim java 注释_centOS7 下的vim java补全
- Play Framework 2.2.6 安装
- 传递给后台的Json数据解析
- [vue] webpack打包vue速度太慢怎么办?
- 铁血规则:事件预订与取消预订
- 微信墙服务器地址,一面微信墙的诞生(3) 用户端界面的创建
- Python第十二章-多进程和多线程01-多进程
- Java集合系列---LinkedHashMap源码解析
- Pycharm配置Git教程
- 工时管理php,现场管理:标准工时和产能如何计算
- OMRON软件安装与配置
- UVA 10066 The Twin Towers
- 中科院计算机技术研究所张浩,中国科学院计算技术研究所 韩 琥 博士
- 计算机重做系统有什么好处,电脑卡重装系统有用吗|电脑太卡可以重装系统解决吗...
- (logN)²是O(N)的
- 实验三 面向对象(二)(预习报告)
- 回文树(模板)+ 例题
- maven依赖顺序原则
- 机器学习——贝叶斯算法(一)
热门文章
- 如何授权您的Mac播放AppleMusic?
- 轻松调整,提升写作效率,让 Word 更好地为你所用
- FTP服务器:Rumpus for Mac
- Office远程代码执行漏洞CVE-2017-8570 大部分版本受影响 PoC已经公开
- (转 留存)Windows环境下的NodeJS+NPM+GIT+Bower安装配置步骤
- 一小时学会用Python Socket 开发可并发的FTP服务器
- 网站测试自动化系统—在测试代码中硬编码测试数据
- 任意文件夹下打开cmd窗口
- 让程序员崩溃只需要一句话
- Java项目权威排名:Nacos未上版,gradle排名第二,Maven排名28