n支队伍比赛,分别编号为0,1,2。。。。n-1,已知它们之间的实力对比关系和出场顺序,求最终排名

本文介绍了一个使用递归算法处理数组的C++程序实例。该程序定义了一个名为getResult的递归函数,用于处理一个整数数组,并根据预设的胜负矩阵调整数组元素,最终输出处理后的顺序。此外,主函数中还演示了如何调用此递归函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <iostream>
using namespace std;
 int w[4][4] = {  
        0,1,2,3,  
        1,1,2,3,  
        2,2,2,3,  
        3,3,3,3  
	};   
void getResult(int* order,int len,int* result){
	int rLen = len;
	if(len == 1) {
		result[--rLen] = order[len - 1];
		return;
	}
	int* newOrder = new int[len/2];
	for(int i = 0 ; i < len;i+=2) {
		if(w[order[i]][order[i+1]] == order[i]) {
			newOrder[i/2] = order[i];
			result[--rLen] = order[i + 1];
			cout<<"win:"<<order[i]<<endl;
		} else {
			newOrder[i/2] = order[i+1];
			result[--rLen] = order[i];
			cout<<"win:"<<order[i+1]<<endl;
		}
	}
	getResult(newOrder,len/2,result);
	delete[] newOrder;
}
int main()
{
	int order[4] = {0,2,3,1};
	int result[4];
	getResult(order,4,result);
	cout<<"Order:";
	for(int i = 0 ; i < 4 ; i ++ ) {
		cout<<result[i]<<" ";
	}
	cout<<endl;
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值