[南阳OJ-No.31]5个数求最值|设计一个从5个整数中取最小数和最大数的程序
2017-02-15 10:13
281 查看
南阳OJ-No.31
时间限制3000ms,内存限制65535KB,难度1描述
设计一个从5个整数中取最小数和最大数的程序输入
输入只有一组测试数据,为五个不大于1万的正整数输出
输出两个数,第一个为这五个数中的最小值,第二个为这五个数中的最大值,两个数字以空格格开。样例输入
1 2 3 4 5样例输出
1 5总的来说此题比较简单,方法较多
思路1:构建一个数组读取输入,然后用排序方法进行排序,具体效率就排序算法而言。
思路2:设置标记变量,最大值和最小值,对输入的数进行比较,大取更大,小取更小。
JAVA
思路1,No.1- 希尔排序|其他排序方法类似,此处不再讨论时间3,内存61
import java.util.Scanner; public class Main { public static Scanner cin = new Scanner(System.in); public static int[] num = new int[5]; public static void main(String[] args) throws Exception{ for (int i=0; i<5; i++) { num[i] = cin.nextInt(); } shellSort(num); System.out.println(num[0] + " " + num[4]); } public static void shellSort(int[] a) { for (int d=a.length/2; d>0; d/=2) { for (int i=d; i<a.length; i++) { int temp = a[i], j = i - d; while (j >= 0 && temp < a[j]) { a[j+d] = a[j]; j -= d; } a[j+d] = temp; } } } }
思路2
时间3,内存61
import java.util.Scanner; public class Main { public static Scanner cin = new Scanner(System.in); public static int num, m, n; public static void main(String[] args) throws Exception{ num = cin.nextInt(); m = n = num; for (int i=0; i<4; i++) { num = cin.nextInt(); if (num > m) { m = num; continue; } if(num < n) { n = num; continue; } } System.out.println(n + " " + m); } }
C++
时间4,内存240
#include<iostream> using namespace std; int main() { int num, max, min; cin >> num; max = min = num; for(int i=0; i<4; i++) { cin >> num; if (num > max) { max = num; continue; } if(num < min) { min = num; continue; } } cout << min << " " << max; return 0; }
相关文章推荐
- 设计一个从5个整数中取最小数和最大数的程序---acm题目
- C语言:编这样一个程序,用户输入10个整数,程序找出其中的最大值和最小值
- 编这样一个程序,用户输入10个整数,程序找出其中的最大值和最小值
- C语言:编这样一个程序,用户输入10个整数,程序找出其中的最大值和最小值
- 编这样一个程序,用户输入10个整数,程序找出其中的最大值和最小值
- [南阳OJ-No.24]素数距离问题|现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度。如果左右有等距离长度素数,则输出左侧的值及相应距离。 如果输入的整数本身就是素
- 编这样一个程序,用户输入10个整数,程序找出其中的最大值和最小值
- 编写程序:从键盘上输入若干个整数(以输入-1作为结束标识),输出这些数中的最大值和最小值,要求编写一个函数实现最大值和最小值的求取。
- C#第1次试验(3)设计一个程序,输入10个数存入数组中,求最大值、最小值和平均值.
- JAVA 输入两个正整数m和n,求其最大公约数和最小公倍数。 1.程序分析:利用辗除法。
- 写一个函数,输入一个二叉树,树中每个节点存放了一个整数值,函数返回这棵二叉树中相差最大的两个节点间的差值绝对值。请注意程序效率。
- 一棵排序二叉树,令 f=(最大值+最小值)/2, 设计一个算法,找出距离f 值最近、大于f 值的结点。 复杂度如果是O(n2)则不得分
- 寻找一个整数数组中最大值。(测试程序)
- 陈利人 面试题 对于一个n位正整数a,去掉其中任意k(k<=n)个数字后,剩下的数字按原次序排列可以组成一个新的正整数。设计一个删数算法,使得剩下的数字组成的正整数最小。
- Java编程:定义一个int型的一维数组,包含10个元素,分别赋一些随机整数,然后求出所有元素的最大值,最小值,平均值,和值,并输出出来。
- 定义一个由整数组成的数组,然后输入一个整数X,如果X不在此数组中,返回小于X的最大数的位置i和大于X的最小数的位置j
- Java程序:求一个数组中的最大值丶最小值和平均值。
- 任意给定一个大于等于10的整数A,请写一程序,以最小的时间复杂度找出比A小并且最接近A的一个整数B。要求:A的每位之和与B的每位之和相等 例:如果A=123 那么B=114
- 设一个长度为10的整型数组, 0)要求每个元素的值通过scanf输入,输入完成后, 1)请顺序输出这些整数, 2)请倒序输出这些整数, 3)输出这些数中的最大值, 4)输出这些数中的最小值
- 12、一个整数数列,元素取值可能是0~65535中的任意一个数,相同数值不会重复出现。0是例外,可以反复出现。 请设计一个算法,当你从该数列中随意选取5个数值,判断这5个数值是否连续相邻。