• (Codeforces Round #136 (Div. 2))A. Little Elephant and Function(递归分析,简单)


    A. Little Elephant and Function
    time limit per test
    2 seconds
    memory limit per test
    256 megabytes
    input
    standard input
    output
    standard output

    The Little Elephant enjoys recursive functions.

    This time he enjoys the sorting function. Let a is a permutation of an integers from 1 to n, inclusive, and ai denotes the i-th element of the permutation. The Little Elephant's recursive function f(x), that sorts the first x permutation's elements, works as follows:

    • If x = 1, exit the function.
    • Otherwise, call f(x - 1), and then make swap(ax - 1, ax) (swap the x-th and (x - 1)-th elements of a).

    The Little Elephant's teacher believes that this function does not work correctly. But that-be do not get an F, the Little Elephant wants to show the performance of its function. Help him, find a permutation of numbers from 1 to n, such that after performing the Little Elephant's function (that is call f(n)), the permutation will be sorted in ascending order.

    Input

    A single line contains integer n (1 ≤ n ≤ 1000) — the size of permutation.

    Output

    In a single line print n distinct integers from 1 to n — the required permutation. Numbers in a line should be separated by spaces.

    It is guaranteed that the answer exists.

    Sample test(s)
    Input
    1
    
    Output
    1 
    Input
    2
    
    Output
    2 1 


    模拟一下即可。假设满足题意的数列为a1, a2, a3, a4,...,an,由an到a1依次执行递归函数后,得到的数列为: a2, a3, ...,an,a1.也就是说只是把原数列的头元素掉到最后面。递归函数要得到一个递增序列,就是1,2,3,...,n,那么原数列就自然是n,1,2,...,n-1,这样把头元素调到最后面就是所要求的序列。

    AC CODE

     1 #include <iostream>
     2 #include <string>
     3 #include <cstdio>
     4 #include <cmath>
     5 #include <cstring>
     6 #include <algorithm>
     7 #include <vector>
     8 #define LL long long
     9 #define MAXI 2147483647
    10 #define MAXL 9223372036854775807
    11 #define eps (1e-8)
    12 #define dg(i) cout << "*" << i << endl;
    13 using namespace std;
    14 
    15 int main()
    16 {
    17     int n;
    18     while(scanf("%d", &n) != EOF)
    19     {
    20         printf("%d ", n);
    21         for(int i = 1; i < n - 1; i++)
    22             printf("%d ", i);
    23         if(n != 1) printf("%d\n", n - 1);
    24     }
    25     return 0;
    26 }


  • 相关阅读:
    [Python] Calculate pi With MonteCarlo
    二次函数闭区间求最小值、、
    [2013.10.30 Luogu OJ P1509]找啊找啊找GF
    IE8下绝对居中的margin:auto兼容问题解决办法
    上传文件过长中间显示省略号
    全选
    往textarea中光标所在位置插入文本
    侧栏悬浮窗
    IE火狐兼容小知识点(即时更新)
    排序、添加、删除、上移、下移功能
  • 原文地址:https://www.cnblogs.com/cszlg/p/2910460.html
Copyright © 2020-2023  润新知