编程:序列交换、数字圆环、小易的英语软件

2024-02-17 02:48

本文主要是介绍编程:序列交换、数字圆环、小易的英语软件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

序列交换

题目

小易给你一个包含n个数字的数组a1,a2,…,a3。你可以对这个数组执行任意次以下交换操作: 对于数组中的两个下标i,j(1<=i,j<=n),如果ai+aj为奇数,就可以交换ai和aj。

现在允许你使用操作次数不限,小易希望你能求出在所有能通过若干次操作可以得到的数组中,字典序最小的一个是什么。

思路:只要不全是奇数或者全是偶数,就进行排序

代码:

import java.util.Arrays;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);while (scanner.hasNext()) {int n = scanner.nextInt();long[] arr = new long[n];for (int i = 0; i < n; i++) {arr[i] = scanner.nextLong();}demo1(arr);return;}}public static void demo1(long[] arr) {//奇数数量int oddSum = 0;for (int i = 0; i < arr.length; i++) {if (arr[i] % 2 == 1) {oddSum++;}}//如果全是偶数或者全是奇数则无法排序,直接输出if (oddSum == 0 || oddSum == arr.length) {for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}return;}//如果至少存在一对奇偶数,则可以将序列全部从小到大排列Arrays.sort(arr);for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}}
}

数字圆环

题目:小易有一个长度为n的数字数组a1a_1a1, a2a_2a2, …, ana_nan。

问你是否能用这n个数字构成一个环(首尾连接),使得环中的每一个数字都小于它相邻的两个数字的和(每个数字都必须使用并且每个数字只能使用一次)。

思路:

因为每个数字小于相邻只和,

  1. 直接排序数组,
  2. 然后只要操作最大数大于次大数与次次大数的和,
  3. 此时只需要将最大数和第二大数交换位置即可。
import java.util.Arrays;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner cin = new Scanner(System.in);int t = cin.nextInt();while (t-- != 0) {int n = cin.nextInt();long[] a = new long[n];for (int i = 0; i < n; i++) {a[i] = cin.nextLong();}Arrays.sort(a);if (a[n-2] + a[n-3] > a[n-1]){ //只要只要最后二个和第一个加起来大于最后一个//可以考虑将最后一个往前交换一位,这样都能满足条件System.out.println("YES");}else {System.out.println("NO");}}
}

小易的英语软件

题目:小易是班级的英语课代表, 他开发了一款软件开处理他的工作。
小易的软件有一个神奇的功能,能够通过一个百分数来反应你的成绩在班上的位置。“成绩超过班级 …% 的同学”。
设这个百分数为 p,考了 s 分,则可以通过以下式子计算得出 p:
p = ( 分数不超过 s 的人数 - 1) ÷\div÷ 班级总人数 ×100%\times 100%×100%
突然一天的英语考试之后,软件突然罢工了,这可忙坏了小易。成绩输入这些对于字写得又快又好的小易当然没有问题,但是计算这些百分数……这庞大的数据量吓坏了他。
于是他来找到你,希望他编一个程序模拟这个软件:给出班级人数 n,以及每个人的成绩,请求出某几位同学的百分数。

代码

import java.util.Scanner;public class Two {public static void main(String[] args) {Scanner sc=new Scanner(System.in);int num=sc.nextInt();int[] arr=new int[num+1];for(int i=1;i<arr.length;i++){arr[i]=sc.nextInt();}int n=sc.nextInt();//int[] a=new int[n];for(int i=0;i<n;i++){int index=sc.nextInt();//int count=func(arr,index)-1;double ans=func(arr,index) * 1.0 / num * 100;//System.out.printf("%.6f",ans);System.out.println(String.format("%.6f",ans));//System.out.println();}}private static int func(int[] arr, int nextInt) {int ount=0;for(int i=1;i<arr.length;i++){if(arr[i]<=arr[nextInt])ount++;}return --ount;}
}

这篇关于编程:序列交换、数字圆环、小易的英语软件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

usaco 1.2 Name That Number(数字字母转化)

巧妙的利用code[b[0]-'A'] 将字符ABC...Z转换为数字 需要注意的是重新开一个数组 c [ ] 存储字符串 应人为的在末尾附上 ‘ \ 0 ’ 详见代码: /*ID: who jayLANG: C++TASK: namenum*/#include<stdio.h>#include<string.h>int main(){FILE *fin = fopen (

uva 10131 最长子序列

题意: 给大象的体重和智商,求体重按从大到小,智商从高到低的最长子序列,并输出路径。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vect

软件设计师备考——计算机系统

学习内容源自「软件设计师」 上午题 #1 计算机系统_哔哩哔哩_bilibili 目录 1.1.1 计算机系统硬件基本组成 1.1.2 中央处理单元 1.CPU 的功能 1)运算器 2)控制器 RISC && CISC 流水线控制 存储器  Cache 中断 输入输出IO控制方式 程序查询方式 中断驱动方式 直接存储器方式(DMA)  ​编辑 总线 ​编辑

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2

【编程底层思考】垃圾收集机制,GC算法,垃圾收集器类型概述

Java的垃圾收集(Garbage Collection,GC)机制是Java语言的一大特色,它负责自动管理内存的回收,释放不再使用的对象所占用的内存。以下是对Java垃圾收集机制的详细介绍: 一、垃圾收集机制概述: 对象存活判断:垃圾收集器定期检查堆内存中的对象,判断哪些对象是“垃圾”,即不再被任何引用链直接或间接引用的对象。内存回收:将判断为垃圾的对象占用的内存进行回收,以便重新使用。

Go Playground 在线编程环境

For all examples in this and the next chapter, we will use Go Playground. Go Playground represents a web service that can run programs written in Go. It can be opened in a web browser using the follow

深入理解RxJava:响应式编程的现代方式

在当今的软件开发世界中,异步编程和事件驱动的架构变得越来越重要。RxJava,作为响应式编程(Reactive Programming)的一个流行库,为Java和Android开发者提供了一种强大的方式来处理异步任务和事件流。本文将深入探讨RxJava的核心概念、优势以及如何在实际项目中应用它。 文章目录 💯 什么是RxJava?💯 响应式编程的优势💯 RxJava的核心概念