测试1错误各位大佬求解啊
查看原帖
测试1错误各位大佬求解啊
546282
bianxingyu1111楼主2022/10/26 22:05
#include<iostream>
using namespace std;
struct Node{
	int val;
	int next;
	bool TF=1;
};
struct List{
	Node node[101];
	int p=0;
	int head=0;
	int tail=head;
	void push_back(int d){
		int np=++p;
		node[np].val=d;
		node[tail].next=np;
		tail=np;
		node[tail].next=getAddr(0,1);
	}
	int getAddr(int i,int n){
		int ip=i;
		for(int k=1;k<=n;k++){
			ip=node[ip].next;
		}
		return ip;
	}
	int getVal(int i){
		return node[i].val;
	}
	void erase(int n,int i){
		int TF=1;
		if(tail==node[i-1].next){
			tail=i;
			node[tail].next=1;
		}
		for(int j=1;j<=n;j++){
			if(node[j].next==i && node[j].TF==1){
				node[j].next=node[i].next;
			}
		}
	}
	int next(int i){
		return node[i].next;
	}
};
int main(){
	int n,m;
	cin>>n>>m;
	List list;
	for(int i=1;i<=n;i++){
		list.push_back(i);
	}
	int k=0;
	for(int i=1;i<n;i++){
		k=list.getAddr(k,m); 
		cout<<k<<' ';
		list.erase(n,k);
		list.node[k].TF=0;
		if(k==0){
			k=n;
		}
	}
	for(int i=1;i<=n;i++){
		if(list.node[i].TF){
			cout<<i;
		}
	}
	return 0;
}
2022/10/26 22:05
加载中...