热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

1044:数字循环结构分析与应用

本研究探讨了数字循环结构的分析与应用,通过以1为中心,使用2至n以及n*n的数字构建循环模式。该结构在时间和空间效率上具有显著优势,适用于多种算法和数据处理场景。实验结果显示,该方法在多项测试中表现出色,具有较高的实用价值。

1044: 数圈

时间限制: 1 Sec  内存限制: 128 MB
提交: 231  解决: 97
[提交][状态][讨论版]

题目描述

以1为中心,用2,3,4, ..., n, ..., n*n的数字围绕着中心输出数圈, 如若n=4,则

7 8 9 10

6 1 2 11

5 4 3 12

16 15 14 13

输入

一个整数n(1<&#61;n<&#61;10)

输出

数圈矩阵

样例输入

5

样例输出

21 22 23 24 25
20 7 8 9 10
19 6 1 2 11
18 5 4 3 12
17 16 15 14 13

提示

来源

#include
using namespace std;
int main(){
 int i,j,n;
 int a[10][10]&#61;{{73,74,75,76,77,78,79,80,81,82},
 {72,43,44,45,46,47,48,49,50,83},
 {71,42,21,22,23,24,25,26,51,84},
 {70,41,20,7,8,9,10,27,52,85},
 {69,40,19,6,1,2,11,28,53,86},
 {68,39,18,5,4,3,12,29,54,87},
 {67,38,17,16,15,14,13,30,55,88},
 {66,37,36,35,34,33,32,31,56,89},
 {65,64,63,62,61,60,59,58,57,90},
 {100,99,98,97,96,95,94,93,92,91}};
 while(cin>>n){
   if(n&#61;&#61;1) cout<<1<   else if(n&#61;&#61;2){
    cout<<1<<" "<<2<    cout<<4<<" "<<3<   }
      else if(n%2!&#61;0){
       for(i&#61;4-n/2;i<&#61;4&#43;n/2;i&#43;&#43;){
         for(j&#61;4-n/2;j<&#61;4&#43;n/2;j&#43;&#43;){
          if(j&#61;&#61;4&#43;n/2) cout<          else
          cout<         }
         cout<       }
      }else{
       for(i&#61;4-(n/2-1);i<&#61;4&#43;n/2;i&#43;&#43;){
         for(j&#61;4-(n/2-1);j<&#61;4&#43;n/2;j&#43;&#43;){
          if(j&#61;&#61;4&#43;n/2) cout<          else
          cout<         }
         cout<       }
      }
 }
 return 0;
}

 

 

以上代码有点蛮干&#xff0c;下面才是正确的代码思路&#xff1a;

#include
using namespace std;
int d,x,y,a[1000][1000];
void move(){
switch(d){
case 0:
y&#43;&#43;;return;
case 1:
x&#43;&#43;;return;
case 2:
y--;return;
case 3:
x--;return;
}
}
int main(){
int n,c&#61;1;
cin>>n;
y&#61;x&#61;(n-1)/2;
a[x][y]&#61;c;
c&#43;&#43;;
d&#61;0;
move();
a[x][y]&#61;c;
c&#43;&#43;;
d&#61;(d&#43;1)%4;
for(int i&#61;1;i for(int j&#61;0;j move();  //某个方向走i步&#xff0c;如向下
a[x][y]&#61;c;
c&#43;&#43;;
}
d&#61;(d&#43;1)%4;
for(int j&#61;0;j move(); //再向左走i步
a[x][y]&#61;c;
c&#43;&#43;;
}
move(); //再向左走一步&#xff0c;此时d这个方向值不变
a[x][y]&#61;c;
c&#43;&#43;;
d&#61;(d&#43;1)%4;//走完之后方向发生改变
}
for(int i&#61;0;i for(int j&#61;0;j if(j&#61;&#61;0)cout< else cout<<" "< }
cout< }
}

 

转:https://www.cnblogs.com/lchzls/p/5781777.html



推荐阅读
  • 在尝试加载支持推送通知的iOS应用程序的Ad Hoc构建时,遇到了‘no valid aps-environment entitlement found for application’的错误提示。本文将探讨此错误的原因及多种可能的解决方案。 ... [详细]
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细]
  • 洛谷 P4009 汽车加油行驶问题 解析
    探讨了经典算法题目——汽车加油行驶问题,通过网络流和费用流的视角,深入解析了该问题的解决方案。本文将详细阐述如何利用最短路径算法解决这一问题,并提供详细的代码实现。 ... [详细]
  • 本题要求计算一组正整数的最小公倍数(LCM)。输入包括多组测试数据,每组数据首先给出一个正整数n,随后是n个正整数。 ... [详细]
  • Java 中的十进制样式 getZeroDigit()方法,示例 ... [详细]
  • 本文通过C++语言实现了一个递归算法,用于解析并计算数学表达式的值。该算法能够处理加法、减法、乘法和除法操作。 ... [详细]
  • 本文详细介绍了C++中的构造函数,包括其定义、特点以及如何通过构造函数进行对象的初始化。此外,还探讨了转换构造函数的概念及其在不同情境下的应用,以及如何避免不必要的隐式类型转换。 ... [详细]
  • 本文介绍如何手动实现一个字符串连接函数,该函数不依赖于C语言的标准字符串处理函数,如strcpy或strcat。函数原型为void concatenate(char *dest, char *src),其主要作用是将源字符串src追加到目标字符串dest的末尾。 ... [详细]
  • c语言二元插值,二维线性插值c语言
    c语言二元插值,二维线性插值c语言 ... [详细]
  • 长期从事ABAP开发工作的专业人士,在面对行业新趋势时,往往需要重新审视自己的发展方向。本文探讨了几位资深专家对ABAP未来走向的看法,以及开发者应如何调整技能以适应新的技术环境。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • importjava.io.*;importjava.util.*;publicclass五子棋游戏{staticintm1;staticintn1;staticfinalintS ... [详细]
  • 在处理大数据量的SQL分页查询时,通常需要执行两次查询来分别获取数据和总记录数。本文介绍了一种优化方法,通过单次查询同时返回分页数据和总记录数,从而提高查询效率。 ... [详细]
  • 新浪微博热搜暂停更新;即刻APP回归;Android 11 Beta版发布 | 科技新闻速递
    为您带来最新的科技资讯,涵盖社交媒体动态、软件更新及行业重大事件。CSDN携手您共同关注科技前沿。 ... [详细]
author-avatar
手机用户2502904377
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有