HNU-Java程序设计基础训练-2023

2024-01-02 00:12

本文主要是介绍HNU-Java程序设计基础训练-2023,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.DNA序列(Java)

【问题描述】 

一个DNA序列由A/C/G/T四个字母的排列组合组成。G和C的比例(定义为GC-Ratio)是序列中G和C两个字母的总的出现次数除以总的字母数目(也就是序列长度)。在基因工程中,这个比例非常重要。因为高的GC-Ratio可能是基因的起始点。

给定一个很长的DNA序列,以及要求的最小子序列长度,研究人员经常会需要在其中找出GC-Ratio最高的子序列。

【输入形式】输入一个string型基因序列,和int型子串的长度

【输出形式】找出GC比例最高的子串,如果有多个输出第一个的子串

【样例输入】AACTGTGCACGACCTGA 5

【样例输出】GCACG

import java.util.*;public class Main {public static void main(String[] args) {Scanner input=new Scanner(System.in);String str= input.next();int n=input.nextInt();int num=0;int index=0;for (int i = 0; i < str.length()-n; i++) {int m=0;for (int j = i; j <i+n ; j++) {if (str.charAt(j)=='C'||str.charAt(j)=='G'){m++;}}if (m>num){num=m;index=i;}}System.out.println(str.substring(index,index+n));}}

2.求近似数(JAVA)

【问题描述】

写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。

【输入形式】

输入一个正浮点数值

【输出形式】

输出该数值的近似整数值

【样例输入】

5.5

【样例输出】

6

import java.util.*;public class Main {public static void main(String[] args) {Scanner input=new Scanner(System.in);float num=input.nextFloat();System.out.println(getint(num));}public static int getint(float n){int a=(int) n;if ((n-a)>=0.5){a+=1;}return a;}}

3. 密码检查(JAVA)

【问题描述】

开发一个密码检查软件,密码要求:

  1. 长度超过8位

  2. 包括大小写字母.数字.其它符号,以上四种至少三种

  3. 不能有相同长度大于或等于2的子串重复

【输入形式】

一组或多组长度超过2的子符串。每组占一行

【输出形式】

如果符合要求输出:OK,否则输出NG

【样例输入】

021Abc9000

021Abc9Abc1

021ABC9000

021$bc9000
【样例输出】

OK

NG

NG

OK

import java.util.*;public class Main {public static void main(String[] args) {Scanner input=new Scanner(System.in);while (input.hasNext()){String str=input.next();int l=str.length();if (l<=8){System.out.println("NG");continue;}char[] chars = str.toCharArray();int countadz = 0;int countAdZ = 0;int count0d9 = 0;int countOthers = 0;for (int i = 0; i < l; i++) {if (Character.isDigit(chars[i])) count0d9=1;if (Character.isUpperCase(chars[i])) countAdZ=1;if (Character.isLowerCase(chars[i])) countadz=1;if ((Character.isLowerCase(chars[i])==false)&&(Character.isUpperCase(chars[i])==false)&&(Character.isDigit(chars[i])==false)) countOthers=1;}if (count0d9+countAdZ+countadz+countOthers<3) {System.out.println("NG") ;continue;}int flag=0;for (int i = 0; i < l - 2; i++) {String sub = str.substring(i, i+2);if (str.substring(i+2,l).contains(sub)) {flag=1;}}if (flag==1) {System.out.println("NG");}else {System.out.println("OK");}}}}

4. 选美比赛(Java)

【问题描述】在选美大奖赛的半决赛现场,有n名选手(2<n<100)参加比赛。比赛结束时,要在现场按照选手的出场顺序宣布最后名次,获得相同分数的选手具有相同的名次,名次连续编号,不用考虑同名次的选手人数。如: </div> <div> 选手数量: 7 选手得分: 5,3,4,7,3,5,6宣布名次: 3,5,4,1,5,3,2 请编程帮助大奖赛组委会完成半决赛的评分排名工作。

【输入形式】选手数量:7 选手得分:5;3;4;7;3;5;6

【输出形式】选手的排名:3 5 4 1 5 3 2

【样例输入】7 5 3 4 7 3 5 6

【样例输出】3 5 4 1 5 3 2 

import java.util.*;public class Main {public static void main(String[] args) {Scanner sc=new Scanner(System.in);int n=sc.nextInt();int[] arr=new int[n];int[] copy=new int[n]; //去重数组for(int i=0;i<n;i++){arr[i]=sc.nextInt();copy[i]=arr[i];}for(int i=0;i<n;i++){for(int j=i+1;j<n;j++){if(arr[i]==copy[j]){copy[j]=0; //置为0 ,去除重复元素}}}for(int i=0;i<n;i++){int tem=1;for(int j=0;j<n;j++){if(arr[i]<copy[j]){ //判断有几个比他大tem++;}}System.out.print(tem+" ");}}
}
5. 情报加密(JAVA)

【问题描述】

在情报传递过程中,为了防止情报被截获,往往需要对情报用一定的方式加密,简单的加密算法虽然不足以完全避免情报被破译,但仍然能防止情报被轻易的识别。我们给出一种最简的的加密方法,对给定的一个字符串,把其中从a-y,A-Y的字母用其后继字母替代,把z和Z用a和A替代,则可得到一个简单的加密字符串。

【输入形式】

可能有多组测试数据。每组测试数据的第一行是字符串的数目n,其余n行每行一个字符串,每个字符串长度小于80个字符。

【输出形式】

对于每组数据,输出每行字符串的加密字符串。

【样例输入】

1

Hello! How are you!
【样例输出】

Ifmmp! Ipx bsf zpv!

import java.util.*;public class Main {public static void main(String[] args) {Scanner sc=new Scanner(System.in);int n=sc.nextInt();sc.nextLine();for (int i = 0; i < n; i++) {char[] arr=sc.nextLine().toCharArray();for(int j=0;j<arr.length;j++){if(arr[j]=='z'){arr[j]='a';}else if(arr[j]=='Z'){arr[j]='A'; //特殊情况判断}else if((arr[j]>='a' && arr[j]<='z')||(arr[j]>='A' && arr[j]<='Z')){arr[j]+=1; //确保是字母,然后后移 //字符与数字相加,会先将字符转换成ASCII然后相加}}System.out.println(arr);}}
}
6. 骰子问题旋转(java)

【问题描述】 

骰子是个立方体每个面一个数字,初始为左1,右2,前3(观察者方向),后4,上5,下6,用123456表示这个状态。放置在平面上,用L表示向左翻转一次,用R表示向右翻转一次,用F表示向前翻转一次,用B表示向后翻转一次,用A表示逆时针旋转90度,用C表示顺时针旋转90度,现从初始状态开始,根据输入的动作序列,计算得到最终的状态。

【输入形式】输入只包含LRFBAC的字母序列,最大长度为50,可重复

【输出形式】输出经过一系列操作后的序列  注:按左右前后上下顺序输出

【样例输入】LB

【样例输出】5 6 1 2 3 4

import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);char[] arr = sc.nextLine().toCharArray(); //字符数组int[] now = {1, 2, 3, 4, 5, 6};  // 当前状态数组for (int i = 0; i < arr.length; i++) {if (arr[i] == 'C') {int t1=now[0];  //列出所有情况now[0]=now[2];now[2]=now[1];now[1]=now[3];now[3]=t1;}else if(arr[i]=='A'){int t1=now[0];now[0]=now[3];now[3]=now[1];now[1]=now[2];now[2]=t1;}else if(arr[i]=='F'){int t1=now[2];now[2]=now[4];now[4]=now[3];now[3]=now[5];now[5]=t1;}else if(arr[i]=='B'){int t1=now[2];now[2]=now[5];now[5]=now[3];now[3]=now[4];now[4]=t1;}else if(arr[i]=='L'){int t1=now[4];now[4]=now[1];now[1]=now[5];now[5]=now[0];now[0]=t1;}else if(arr[i]=='R'){int t1=now[4];now[4]=now[0];now[0]=now[5];now[5]=now[1];now[1]=t1;}}for(int i=0;i<6;i++){System.out.print(now[i]+" "); //输出状态}}
}

这篇关于HNU-Java程序设计基础训练-2023的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/560868

相关文章

springboot健康检查监控全过程

《springboot健康检查监控全过程》文章介绍了SpringBoot如何使用Actuator和Micrometer进行健康检查和监控,通过配置和自定义健康指示器,开发者可以实时监控应用组件的状态,... 目录1. 引言重要性2. 配置Spring Boot ActuatorSpring Boot Act

使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)

《使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)》在现代软件开发中,处理JSON数据是一项非常常见的任务,无论是从API接口获取数据,还是将数据存储为JSON格式,解析... 目录1. 背景介绍1.1 jsON简介1.2 实际案例2. 准备工作2.1 环境搭建2.1.1 添加

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

java如何分布式锁实现和选型

《java如何分布式锁实现和选型》文章介绍了分布式锁的重要性以及在分布式系统中常见的问题和需求,它详细阐述了如何使用分布式锁来确保数据的一致性和系统的高可用性,文章还提供了基于数据库、Redis和Zo... 目录引言:分布式锁的重要性与分布式系统中的常见问题和需求分布式锁的重要性分布式系统中常见的问题和需求

SpringBoot基于MyBatis-Plus实现Lambda Query查询的示例代码

《SpringBoot基于MyBatis-Plus实现LambdaQuery查询的示例代码》MyBatis-Plus是MyBatis的增强工具,简化了数据库操作,并提高了开发效率,它提供了多种查询方... 目录引言基础环境配置依赖配置(Maven)application.yml 配置表结构设计demo_st

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单

《Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单》:本文主要介绍Springboot的ThreadPoolTaskScheduler线... 目录ThreadPoolTaskScheduler线程池实现15分钟不操作自动取消订单概要1,创建订单后

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

SpringCloud集成AlloyDB的示例代码

《SpringCloud集成AlloyDB的示例代码》AlloyDB是GoogleCloud提供的一种高度可扩展、强性能的关系型数据库服务,它兼容PostgreSQL,并提供了更快的查询性能... 目录1.AlloyDBjavascript是什么?AlloyDB 的工作原理2.搭建测试环境3.代码工程1.

Java调用Python代码的几种方法小结

《Java调用Python代码的几种方法小结》Python语言有丰富的系统管理、数据处理、统计类软件包,因此从java应用中调用Python代码的需求很常见、实用,本文介绍几种方法从java调用Pyt... 目录引言Java core使用ProcessBuilder使用Java脚本引擎总结引言python