m记录剩下没被删除的数的数量:

	int m=n;

 soft排序a[1]~a[n]:

	sort(a+1,a+n+1);

as表示要参照的数:

	int as=1;

清空:

			a[i]=0;

减去数的数量:

			m--;

和下一个对比:

			as++;

否则重新计数:

		 else{
			as=1;
		}

操作——删减数:

	for(int i=2;i<=n;i++){
		if(a[i]==a[i-as]){
			a[i]=0;//清空
			m--;//减去数的数量
			as++;//和下一个对比
		}else{
			as=1;//否则重新计数
		}
	}

源代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,a[101];
	cin>>n;
	int m=n;//m记录剩下没被删除的数的数量
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	sort(a+1,a+n+1);//soft排序a[1]~a[n]
	int as=1;//as表示要参照的数
	for(int i=2;i<=n;i++){
		if(a[i]==a[i-as]){
			a[i]=0;//清空
			m--;//减去数的数量
			as++;//和下一个对比
		}else{
			as=1;//否则重新计数
		}
	}//操作——删减数
	cout<<m<<endl;
	cout<<a[1];
	for(int i=2;i<=n;i++){
		if(a[i]!=0){
			cout<<" "<<a[i];
		}
	}
	return 0;
}
10-10 00:12