程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> POJ-3032,tds3032c

POJ-3032,tds3032c

編輯:C++入門知識

POJ-3032,tds3032c


算法

准備一個最多能存放13個元素的隊列,開始時隊列為空。

1. 輸入n。

3. 將n加入隊列。

4. 令i從n到2執行:
  // 此時隊列中有n-i+1個元素
  將i-1加入到隊列首部。
  // 此時隊列中有n-i+2個元素
  執行i-1次:
    將隊尾的元素放至隊首。

5. 輸出隊列。

代碼

#include <iostream>

using namespace std;

int main()
{
    int tab[15][15];
    for (int i=0; i<15; ++i)
    {
        for (int j=0; j<15; ++j)
        {
            tab[i][j]^=tab[i][j];
        }
    }
    for (int n=1; n<=13; ++n)
    {
        tab[n][1]=n;
        for (int i=n; i>1; --i)
        {
            for (int j=n-i+2; j>1; --j)
            {
                tab[n][j]=tab[n][j-1];
            }
            tab[n][1]=i-1;
            for (int j=0; j<i-1; ++j)
            {
                int t=tab[n][n-i+2];
                for (int k=n-i+2; k>1; --k)
                {
                    tab[n][k]=tab[n][k-1];
                }
                tab[n][1]=t;
            }
        }
    }
    int n;
    cin >> n;
    while (n--)
    {
        int m;
        cin >> m;
        for (int i=1; i<m; ++i)
        {
            cout << tab[m][i] << " ";
        }
        cout << tab[m][m] << endl;
    }
    return 0;
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved