当前位置: 首页 > news >正文

蓝桥杯专题-真题版含答案-【三角螺旋阵】【干支记年法】【异或加密法】【金字塔】

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总
游戏脚本-辅助自动化Android控件全解手册再战Android系列
Scratch编程案例软考全系列Unity3D学习专栏
蓝桥系列ChatGPT和AIGC

👉关于作者

专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎底部卡片私我,获取更多支持,交流让学习不再孤单

CSDN-芝麻粒儿

👉实践过程

😜三角螺旋阵

方阵的主对角线之上称为“上三角”。
请你设计一个用于填充n阶方阵的上三角区域的程序。填充的规则是:使用1,2,3….的自然数列,从左上角开始,按照顺时针方向螺旋填充。
例如:当n=3时,输出:
1 2 3
6 4
5
当n=4时,输出:
1 2 3 4
9 10 5
8 6
7
当n=5时,输出:
1 2 3 4 5
12 13 14 6
11 15 7
10 8
9
程序运行时,从标准输入获得整数n(3~20)
程序输出:方阵的上三角部分。
要求格式:每个数据宽度为4,右对齐。

import java.util.Scanner;  public class 三角螺旋阵 {  // 输出   public static void print(int[][] m){  for(int[] x:m){  for(int y:x){  System.out.printf("%4d",y);  }  System.out.println();  }  }  // 初始化   public static void init(int[][] m){  for(int i=0;i<m.length;i++){  m[i] = new int[m.length-i];  }  }  // 螺旋填充数字   public static void f(int[][] m,int k,int num){  if(k>=m.length/2) return ;  // 第一行   for(int i=k;i<m[k].length-k;i++){  m[k][i] = num++;   }  // 最后一位   for(int i=k+1;i<m[k].length-k;i++){  m[i][m[i].length-1-k] = num++;   }  // 左列   for(int i=m[k].length-2-k;i>k;i--){  m[i][k] = num++;   }  f(m,k+1,num);   // 递归进行内圈填充   }  public static void main(String[] args){  Scanner scan = new Scanner(System.in);  System.out.println("输入整数n(3~20)");  int n = scan.nextInt();  int[][] m = new int[n][];  init(m);    // 初始化   f(m,0,1);   // 螺旋填充数字   print(m);   // 输出   }  
} 

😜干支记年法

在我国古代和近代,一直采用干支法纪年。它采用10天干和12地支配合,一个循环周期为60年。
10天干是:甲,乙,丙,丁,戊,己,庚,辛,壬,癸
12地支是:子,丑,寅,卯,辰,巳,午,未,申,酉,戌,亥
如果某年是甲子,下一年就是乙丑,再下是丙寅,…癸酉,甲戌,乙亥,丙子,…
总之天干、地支都是循环使用,两两配对。
今年(2012)是壬辰年,1911年辛亥革命
下面的代码根据公历年份输出相应的干支法纪年。已知最近的甲子年是1984年。
请分析代码逻辑,并推测划线处的代码。

public class 干支记年法 {  public static void f(int year){  char[] x = {'甲','乙','丙','丁','戊','己','庚','辛','壬','癸'};  char[] y = {'子','丑','寅','卯','辰','巳','午','未','申','酉','戌','亥'};  int n = year - 1984;  while(n<0) {  n += 60;  }  System.out.printf("%d %s%s\n", year,x[n%10], y[n%12]);  }  public static void main(String[] args){  f(1911);  f(1970);  f(2012);  }  
}  
运行结果:
1911 辛亥  
1970 庚戌  
2012 壬辰

😜异或加密法

在对文本进行简单加密的时候,可以选择用一个n位的二进制数,对原文进行异或运算。
解密的方法就是再执行一次同样的操作。
加密过程中n位二进制数会循环使用。并且其长度也可能不是8的整数倍。
下面的代码演示了如何实现该功能。

public class 异或加密法 {  public static void print(char[] p){  for(char x:p){  System.out.printf("%s", x);  }  System.out.println();  }  public static void f(char[] buf, char[] uckey, int n) {  int i;  for (i = 0; i < n; i++)  buf[i] = (char) (buf[i] ^ uckey[i]);  }  public static void main(String[] args) {  char p[] = "abcd中国人123".toCharArray(); // 待加密串   char[] key = "11001100010001110".toCharArray(); // 以串的形式表达的密匙,运算时要转换为按位存储的形式。   int np = p.length;  int nk = key.length;  char[] uckey = new char[np];  // 密匙串需要按位的形式循环拼入 uckey中   int i;  for (i = 0; i < np * 8; i++) {  if (key[i % nk] == '1')  uckey[i/8] |= (char)0x80 >> (i%8); // 填空1   else  uckey[i/8] &= ~(char)0x80 >> (i%8); // 填空2   }  f(p, uckey, p.length);  print(p);  f(p, uckey, p.length);  print(p);  }  
}

😜金字塔

下面代码的目标是输出一个大写字母组成的金字塔。
其中space表示金字塔底距离左边的空白长度,x表示金字塔底的中心字母。
比如:space=0, x=’C’,则输出:
A
ABA
ABCBA
再如:space=2,x=’E’, 则输出:
A
ABA
ABCBA
ABCDCBA
ABCDEDCBA

请分析该段代码的逻辑,填写缺少的部分。

public class 金字塔 {  public static void h(int space, char x){  int i;  if(x<'A' || x>'Z') return;  h(space+1,(char)(x-1));     // 填空   for(i=0; i<space; i++) System.out.printf(" ");  for(i=0; i<x-'A'; i++) System.out.printf("%c",'A'+i);  for(i=0; i<=x-'A'; i++) System.out.printf("%c",(char)(x-i)); // 填空   System.out.printf("\n");  }  public static void main(String[] args) {  int space=0;  char x= 'E';  h(space,x);  }  
}  
运行结果:A  ABA  ABCBA  ABCDCBA  
ABCDEDCBA  

👉其他

📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:https://zhima.blog.csdn.net/
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。

温馨提示点击下方卡片获取更多意想不到的资源。
空名先生

http://www.lryc.cn/news/261561.html

相关文章:

  • 鸿蒙篇——初次使用鸿蒙原生编译器DevEcoStudio创建一个鸿蒙原生应用遇到的坑--汇总(持续更新)
  • 细胞培养之一二三:哺乳动物细胞培养污染问题和解决方案
  • 《Linux C编程实战》笔记:文件属性操作函数
  • linux中的网络知识
  • tp中的调试模式
  • 【docker 】基于Dockerfile创建镜像
  • C# 提取PDF中指定文本、图片的坐标
  • CTF网络安全大赛是干什么的?发展史、赛制、赛程介绍,参赛需要学什么?
  • 阿里云SMC迁移RedHat/CentOS 5 内核升级
  • 无代码开发让合利宝支付与CRM无缝API集成,提升电商用户运营效率
  • 数据标注公司如何确保数据安全?景联文科技多维度提供保障
  • (C语言)精确计算程序运行时间的方法
  • 【Vulnhub 靶场】【VulnCMS: 1】【简单】【20210613】
  • 普冉(PUYA)单片机开发笔记(10): I2C通信-配置从机
  • Idea maven打包时 报错 illegalArgumentException: Malformed \uxxxx encoding 解决方法
  • Qt中槽函数在那个线程执行的探索和思考
  • C++ 类模板
  • 边缘计算系统设计与实践
  • 【Spark精讲】Spark存储原理
  • 贪心算法:买卖股票的最佳时机II 跳跃游戏 跳跃游戏II
  • 音频DAC,ADC,CODEC的选型分析,高性能立体声
  • python 连接SQL server 请用pymssql连接,千万别用pyodbc
  • IntelliJ IDEA 自带HTTP Client接口插件上传文件示例
  • C++中的接口有什么用
  • el-table合并相同数据的单元格
  • Verilog Systemverilog define宏定义
  • 51单片机应用从零开始(十一)·数组函数、指针函数
  • 【PostgreSQL】从零开始:(八)PostgreSQL-数据库PSQL元命令
  • 02 使用Vite创建Vue3项目
  • Shell三剑客:sed(简介)