做衣服外单网站,网站信息化建设总结,服装定制合同范本,南京专业网站营销假设在周末舞会上#xff0c;男士们和女士们进入舞厅时#xff0c;各自排成一队。跳舞开始时#xff0c;依次从男队和女队的队头各出一人配成舞伴。若两队初始人数不相同#xff0c;则较长的那一队中未配对者等待下一轮舞曲。现要求写一算法模拟上述舞伴配对问题。配对规则…假设在周末舞会上男士们和女士们进入舞厅时各自排成一队。跳舞开始时依次从男队和女队的队头各出一人配成舞伴。若两队初始人数不相同则较长的那一队中未配对者等待下一轮舞曲。现要求写一算法模拟上述舞伴配对问题。配对规则每首舞曲开始从男队队头和女队队头各出一人组成一对舞伴。如果某队人不够了比如男士多、女士少没配上对的人等待下一曲。配过对的人回到自己队伍的队尾继续等待因为舞曲是一首接一首的输入第一行男士人数m、女士人数n第二行舞曲数目k输出共k行每行两个数男士编号、女士编号示例理解输入 3 2 (3个男士2个女士) 5 (5首舞曲)初始队列男队1 2 3 (队头是1) 女队1 2 (队头是1)第1首舞曲男队头1号女队头1号 → 配对(1,1)配对后1号男和1号女分别回到队尾男队2 3 1 女队2 1第2首舞曲男队头2号女队头2号 → 配对(2,2)男队3 1 2 女队1 2第3首舞曲男队头3号女队头1号 → 配对(3,1)男队1 2 3 女队2 1第4首舞曲男队头1号女队头2号 → 配对(1,2)男队2 3 1 女队1 2第5首舞曲男队头2号女队头1号 → 配对(2,1)男队3 1 2 女队2 1输出结果1 1 2 2 3 1 1 2 2 1#includeiostream #includequeue using namespace std; int main(){ int m,n,k; cinmnk; queueintmen,women; // 初始化队列 for(int i1 ; im ;i){ men.push(i); } for(int i1 ; in ;i){ women.push(i); } int menn,womenn; while(k0){ // 当k大于0时循环 menn men.front(); men.pop(); womenn women.front(); women.pop(); k--; // k减1 coutmenn womennendl; men.push(menn); // 男士回到队尾 women.push(womenn); // 女士回到队尾 } return 0; }法二、数学公式法以m3, n2, k5为例舞曲ii%3男士编号i%2女士编号配对000110011(1,1)111121112(2,2)222130011(3,1)300111112(1,2)411120011(2,1)完全匹配队列模拟的结果#include iostream using namespace std; int main() { int m, n, k; // 定义三个整型变量 // m: 男士人数n: 女士人数k: 舞曲数目 cin m n k; // 从键盘输入m、n、k的值 // 第一行输入男士人数m 和 女士人数n // 第二行输入舞曲数目k // for循环模拟k首舞曲的配对过程 for(int i 0; i k; i) { // i从0到k-1共循环k次代表k首舞曲 // 第i首舞曲从0开始编号 // 男士编号计算公式(i % m) 1 // i % m取i除以m的余数结果范围是0到m-1 // 1将范围调整为1到m符合实际编号 // 女士编号计算公式(i % n) 1 // 同理i % n的范围是0到n-11后变为1到n // 输出当前舞曲的配对结果 // 男士编号在前女士编号在后中间用空格隔开每行结束后换行 cout (i % m) 1 (i % n) 1 endl; } return 0; }