逆序排列

/**

例子输入

7 19 -5 6 2 0

例子输出

2 6 -5 19 7

*/

import java.util.*;

import java.io.*;

public class 逆序排列 {

public static void main(String[] args) {

Scanner in=new Scanner(new BufferedInputStream(System.in));

int [] a=new int [21];

int num=0;

a[0]=in.nextInt();

for(int i=1;i<a.length;i++){

if(a[0]!=0){

a[i]=in.nextInt();

num++;

}

if(a[i]==0)

break;

}

for(int i=num-1;i>=0;i--){

if(i!=0)

System.out.print(a[i]+" ");

else

System.out.println(a[i]);

}

}

}

时间: 2024-07-30 12:12:49

逆序排列的相关文章

算法题:一个N字节的数,如何逆序排列各个位(bit)?例如1字节的数 0010 0011 =&gt; 1100 0100

一个简简单单的题,如果用Java,C++,C估计还挺麻烦的,大体思路就是,开辟个N字节空间,用移位掩码方法逆向给每个bit赋值,这里由于N可能比较大,还得记录些额外的边界信息. 用Erlang则会简单很多: -module(bitoperator). -export([bit_reverse/1]). bit_reverse(Bin) -> L = [X || <<X:1>> <= Bin], Lr = lists:reverse(L), Br = list_to_bi

51Nod 1020 逆序排列

 1020 逆序排列 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序.一个排列中逆序的总数就称为这个排列的逆序数. 如2 4 3 1中,2 1,4 3,4 1,3 1是逆序,逆序数是4. 1-n的全排列中,逆序数最小为0(正序),最大为n*(n-1) / 2(倒序) 给出2个数n和k,求1-n的全排列中,逆序数为k的排列有多少种? 例如:n = 4 k = 3. 1 2 3 4的排列中逆序为3的共有6个,分别是: 1 4 3 2 2 3 4 1

10.14 将n个数按输入输出顺序的逆序排列,用函数实现

将n个数按输入输出顺序的逆序排列,用函数实现. #include <stdio.h> int main(){ int n,i; void reverse(int * num, int n); printf("input n="); scanf("%d",&n); int num[20]; printf("输入%d个数.\n",n); for(i=0; i<n; i++){ scanf("%d",&am

51nod1020 逆序排列(dp)

1020 逆序排列 基准时间限制:2 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 收藏 关注 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序.一个排列中逆序的总数就称为这个排列的逆序数. 如2 4 3 1中,2 1,4 3,4 1,3 1是逆序,逆序数是4. 1-n的全排列中,逆序数最小为0(正序),最大为n*(n-1) / 2(倒序) 给出2个数n和k,求1-n的全排列中,逆序数为k的排列有多少种? 例如:n = 4 k

蓝桥杯- 算法提高 逆序排列

算法提高 逆序排列 时间限制:1.0s   内存限制:512.0MB 问题描述 编写一个程序,读入一组整数(不超过20个),并把它们保存在一个整型数组中.当用户输入0时,表示输入结束.然后程序将把这个数组中的值按逆序重新存放,并打印出来.例如:假设用户输入了一组数据:7 19 -5 6 2 0,那么程序将会把前五个有效数据保存在一个数组中,即7 19 -5 6 2,然后把这个数组中的值按逆序重新存放,即变成了2 6 -5 19 7,然后把它们打印出来. 输入格式:输入只有一行,由若干个整数组成,

算法笔记_158:算法提高 逆序排列(Java)

目录 1 问题描述 2 解决方案 1 问题描述 问题描述 编写一个程序,读入一组整数(不超过20个),并把它们保存在一个整型数组中.当用户输入0时,表示输入结束.然后程序将把这个数组中的值按逆序重新存放,并打印出来.例如:假设用户输入了一组数据:7 19 -5 6 2 0,那么程序将会把前五个有效数据保存在一个数组中,即7 19 -5 6 2,然后把这个数组中的值按逆序重新存放,即变成了2 6 -5 19 7,然后把它们打印出来. 输入格式:输入只有一行,由若干个整数组成,中间用空格隔开,最末尾

算法之链表逆序排列

算法纯属个人爱好,欢迎交流,共享 /** * */ package com.zimo.sequence; /** * 逆序排列 * @author 子墨 * * 2015-3-11下午2:31:55 */ public class Node { int data; Node next = null; public Node(int data){ this.data=data; } /** * 1->2->3->4->5->6->7->8->9 * 定义一个p

51nod 1020 逆序排列(动态规划)

分析:记dp[n][k]为n个数,逆序数为k的个数,将dp[n][k]分为两部分,一部分有1~n-1的逆序构成,一类是有n的逆序,可以得到dp[n+1][k+1]=(max(0,k+1-n),min(k+1,n*(n-1)/2)∑dp[n][i],再用dp[n+1][k+1]与dp[n+1][k]做差,讨论一下k和n的关系就可以写出递推式了. 1 #include<iostream> 2 using namespace std; 3 const int maxn=1005,maxk=20005

Java数组逆序排列

public class Test4 { public static void main(String[] args) { //数组的逆序 {12,69,852,25,89,588} int[] arr = {12,69,852,25,89,588}; reverse(arr); printArray(arr);} public static void reverse(int[] arr){ for(int min =0,max=arr.length-1;min<max;min++,max--)