華東師範大學上機題——舞會配對
題目描述:
假設在週末舞會上,男士們和女士們進入舞廳時,各自排成一隊。跳舞開始時,依次從男隊和女隊的對頭上各出一個人配成舞伴。規定每個舞曲能有一隊跳舞者。若兩隊初始人數不相同,則較長的那一隊中未配對者等待下一輪舞曲。現要求寫一個程序,模擬上述舞伴配對問題。
Input:
三個整數m,n,k(1<=m,n<=150,1<=k<=4000),分別表示男士人數,女士人數,幾輪舞曲。
Output:
輸出各輪舞曲的配對方案。
Example:
input
2 4 6
output
1 1
2 2
1 3
2 4
1 1
2 2
算法思路:
定義兩個指針指向男士列隊和女士列隊,每當指針指到隊尾,本輪舞曲結束後指針就還原到開頭。
#include<iostream>
using namespace std;
int main() {
int m, n, k;
cout << "輸入男士人數:";
cin >> m;
cout << "輸入女士人數:";
cin >> n;
cout << "輸入舞曲輪數:";
cin >> k;
int i = 1, j = 1;
for (int p = 1;p <= k;p++) {
cout << i << " " << j << endl;
i++;
j++;
if (i > m)
i = 1;
if (j > n)
j = 1;
}
return 0;
}
運行測試結果: