`

输入N个正整数 然后从大到小排序 然后求出最小和最大的整数的阶乘

 
阅读更多

package Comparetor;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.ObjectInput;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;

public class CoMpare {
 // 输入N个正整数 然后从大到小排序 然后求出最小和最大的整数的阶乘
 public static void main(String[] args) {
  BufferedReader br = null;
  BufferedWriter bw = null;
  /*
   * ObjectInput ois = null;//用来socket ObjectOutputStream oos =
   * null;/用来socket
   */
  br = new BufferedReader(new InputStreamReader(System.in));// 在Reader的构造的参数赢要reader这个类型的
                 // 那么inputStreamReader就是BufferedReader里面的
  System.out.println("input some char");
  String[] str = null;
  try {
   str = (br.readLine()).split(" ");
  } catch (IOException e) {
   e.printStackTrace();
  }
  List lists = new ArrayList();
  for (String s : str) {
   lists.add(new Integer(Integer.parseInt(s)));
  }
  System.out.println(lists.toString());
  // 排序
  Integer temp = null;
  int maxsize = 1;
  for (int i = 1; i < lists.size(); i++) {
   temp = (Integer) lists.remove(i);
   if (temp.intValue() >= ((Integer) lists.get(maxsize - 1))
     .intValue()) {
    lists.add(maxsize, temp);
    maxsize++;
   } else {
    for (int j = 0; j < maxsize; j++) {
     if (temp.intValue() <= ((Integer) lists.get(j)).intValue()) {
      lists.add(j, temp);
      maxsize++;
      break;
     }
    }
   }
  }
  System.out.println("after");
     System.out.println(lists.toString());
     System.out.println("min="+lists.get(0));
     System.out.println("max="+lists.get(lists.size()-1));
     //min的阶乘 //max的阶乘
      int min = ((Integer)lists.get(0)).intValue();
      int max = ((Integer)lists.get(lists.size()-1)).intValue();
      int sum = 1 ;
      if(min == 1 || min==0){
       System.out.println("最小阶乘为1");
      }else{
       for(int i = 1 ; i<=min ; i++){
        sum*=i;
       }
       System.out.println("最小数的阶乘为"+sum);
      }
 
 if(max== 1 || max==0){
       System.out.println("最大阶乘为1");
      }else{
       for(int i = 1 ; i<max ; i++){
        sum*=i;
       }
        System.out.println("最da数的阶乘为"+sum);
      }
 }
}

分享到:
评论

相关推荐

    输入两个正整数m和n求其最大公约数和最小公倍数 (2).pdf

    43. **数列求和**:找到满足条件的最大n,然后计算数列之和。 44. **筛选特定数列**:使用循环过滤出不满足条件的数。 45. **Fibonacci数列**:递归或迭代计算Fibonacci数列的前40项。 46. **密码加密**:根据...

    输入两个正整数m和n求其最大公约数和最小公倍数.docx

    - 最小公倍数是能够同时整除两个或多个整数的最小正整数,可以通过两个数的乘积除以它们的最大公约数得到。 2. 字符统计: - 在编程中,可以遍历输入字符串,通过条件判断统计字母、空格、数字和其他字符的数量。...

    输入两个正整数m和n求其最大公约数和最小公倍数.pdf

    1. **最大公约数(GCD)和最小公倍数(LCM)**:使用欧几里得算法可以计算两个正整数的最大公约数,而最小公倍数可以通过两数乘积除以它们的最大公约数得到。 2. **字符计数**:在字符串处理中,统计字母、空格、...

    输入两个正整数m和n求其最大公约数和最小公倍数 (2).docx

    1. 最大公约数(GCD)和最小公倍数(LCM):使用欧几里得算法可以求解两个正整数的最大公约数,最小公倍数可以通过两数乘积除以最大公约数得到。 2. 字符计数:遍历输入的字符串,利用条件语句(如if)统计字母、...

    Python入门程序 函数应用(判断素数、递归求n的阶乘、x的n次方、最大最小值、插入排序法)

    这个函数不仅可以用于整数列表,也可以用于字符串列表,例如在示例中对字符串"Hello"进行处理,找出字母顺序上的最大和最小字符。 5. **插入排序法** 插入排序是一种简单直观的排序算法,它的工作原理是通过构建...

    程序输入a、b、c三个值,输出其中最大值。

    完美数是指一个正整数等于其所有真因子(除了自身之外的因子)之和。该代码利用了循环和条件语句来识别完美数。其实现逻辑如下: 1. 对于每个数i,在1到i-1的范围内检查因子。 2. 计算所有因子的和,如果这个和等于i...

    《C语言学习笔记》程序1

    在这些C语言的学习笔记中,我们看到了多个不同的程序示例,涵盖了基础的算术操作、数组处理、排序算法以及计算阶乘和最大公约数(Greatest Common Divisor, GCD)与最小公倍数(Least Common Multiple, LCM)的概念...

    入门算法C语言

    以上内容总结了C语言中的一些基础算法,包括计数、求和、求阶乘、求最大公约数和最小公倍数、判断素数、验证哥德巴赫猜想以及简单的排序算法。通过这些实例的学习和练习,有助于加深对C语言的理解,并为进一步学习更...

    C语言常用算法总结(2011.12).pdf

    选择排序的基本思想是在未排序的序列中找到最小(或最大)元素,放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(或最大)元素,然后放到已排序序列的末尾。这个过程一直持续到所有元素均排序完毕...

    常用C语言程序集合的文本文档

    它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。在这个例子中,`sort(float a[], long b[], int n)`函数遍历数组,比较并交换元素以...

    c语言作业题

    - **解析**: 计算两个正整数的最大公约数和最小公倍数,涉及到了辗转相除法或欧几里得算法等基本算法思想。通过循环结构实现算法流程。 **E20. 简单循环** - **知识点**: 循环结构、字符编码。 - **解析**: 打印出...

    各种C++上机代码

    描述中的内容列举了几个具体的编程任务,包括“用链表计算n个数的和”、“定义三维数组并计算”以及“选择排序”,还有“求100!!”,这涉及到链表操作、数组的高级应用、排序算法以及阶乘的计算。接下来,我们将...

    杭电复试C语言编程实例及答案解析

    该实例要求编写程序实现对输入的两个正整数的最大公约数和最小公倍数的计算。 17. C语言求自然底数e 知识点:数学计算、循环算法 自然底数e是一个数学常数,要求编写程序实现对自然底数e的计算。 18. C语言小写...

    C程序常考算法10则

    3. **阶乘**:阶乘表示一个正整数n的所有小于等于n的正整数的乘积。在C语言中,可以通过递归或循环方式计算阶乘,但要注意防止溢出。 4. **累加和累乘**:累加是指将数组元素逐个相加,累乘则是将数组元素逐个相乘...

    python基础练习(100题)

    - **题目描述**:输入三个整数x、y、z,按从小到大的顺序输出。 - **解题思路**: - 使用排序函数`sorted()`直接对三个数排序。 - 或者使用条件语句比较三个数的大小关系。 **【程序6】** - **题目描述**:使用星...

    c语言考试必备![归类].pdf

    1. 最大公约数和最小公倍数的计算:该问题要求使用辗转相除法计算两个正整数的最大公约数和最小公倍数。 知识点:辗转相除法、最大公约数、最小公倍数 2. 英文字母、空格、数字和其他字符的统计:该问题要求统计一...

    C语言常用算法总结(2011.12)[参考].pdf

    本文将重点介绍C语言中常见的几种算法,包括计数、求和、求阶乘,求最大公约数和最小公倍数,判断素数,以及排序算法。 1. 计数、求和、求阶乘算法: 这类问题通常通过循环结构解决。例如,计数算法常常需要用到...

    2009C++程序设计复习题.doc

    C++程序设计复习题涵盖了多个基础到进阶的编程知识点,包括基本的输入输出、循环控制、函数设计、条件判断、数组操作、字符串处理、递归、数学计算、排序算法和日期处理等。 1. **基本输入输出**:在题目中,通过`...

    《c++程序设计》答案

    在`main`函数中,用户输入三个整数`a`、`b`和`c`,然后计算这三个数的阶乘之和并输出。 ### 第四节:方程根的近似求解 在第四段代码中,程序尝试使用牛顿迭代法(或类似方法)来近似求解方程`a*x^3 + b*x^2 + c*x ...

    头歌c语言实训作业题解

    第2关:求解出n以内所有能被5整除的正整数的乘积 第3关:最大公约数和最小公倍数 第4关:字符串中各类字符数的统计 第5关:求sn=a+aa+aaa+aaaa+......的值 循环结构程序设计2 第1关:C循环-求平均成绩 第2关:C循环-...

Global site tag (gtag.js) - Google Analytics