zoukankan      html  css  js  c++  java
  • 1042 Shuffling Machine (20分)

     1 #include <iostream>
     2 const int N = 54;
     3 using namespace std;
     4 int main()
     5 {
     6     char type[5] = { 'S','H','C','D','J' };//0-12:S, 13-25:H, 26-38:C, 39-51:D, 52-53:J
     7     int k,res[N],origin[N];//第i个位置的数据应该放到下标为origin[i]的位置,假如origin[0]为36,则第36个位置(下标为36)应该放置第0个位置的数据
     8     cin >> k;
     9     for (int i = 0; i < N; ++i) origin[i] = i;
    10     int order[N];
    11     for (int i = 0; i < N; ++i) cin >> order[i];
    12     for (int i = 0; i < k; ++i)
    13     {
    14         for (int j = 0; j < N; ++j)
    15             res[order[j]-1] = origin[j];//比如order[0]是30,则把origin[0]放到res[29]
    16         for (int z = 0; z < N; ++z)//下一次循环,将res的结果作为origin的新结果
    17             origin[z] = res[z];
    18     }
    19     for (int i = 0; i < N; ++i)
    20     {
    21         int t = res[i];
    22         cout << type[t / 13] << t % 13+1;
    23         if (i != N-1)
    24             cout << ' ';
    25     }
    26     return 0;
    27 }

     由于是根据res的值来输出的,res值的取值范围是0到53,即数组下标范围,所以origin存的是下标,origin直接给res赋值,res存的也是下标,order范围是1到54,用的时候减去1,当成下标使用,所以就可以统一把下标当成“位置”了。

  • 相关阅读:
    生成器,生成器表达式。
    device busy
    memcached
    ps f
    Eviews9.0---软件安装
    免费提取百度文库 doc 文件
    Matlab---length函数
    Matlab 路径函数
    matlab中disp函数的简单用法
    MATLAB---dir函数
  • 原文地址:https://www.cnblogs.com/2020R/p/13151807.html
Copyright © 2011-2022 走看看