题目链接:点击打开链接
知识点笔记:
AC代码:
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int main() {
bool hashTable[10000];
memset(hashTable,false,sizeof(hashTable));
int n;
scanf("%d",&n);
int a[n];
for(int i=0;i<n;i++){
scanf("%d",&a[i]); //把测试用例存在整型数组a[n]
//标记hashTable
int temp=a[i];
while(temp!=1){
if(temp%2==0)
temp/=2;
else
temp=(temp*3+1)/2;
hashTable[temp]=true; //所有出现的数,都设为true
}
}
sort(a,a+n);
int count=0;
for(int i=n-1;i>=0;i--){
if(hashTable[a[i]]==false)
if(count==0){ //防止最后一个数后面输出空格
printf("%d",a[i]);
count++;
}else{
printf(" %d",a[i]);
}
}
return 0;
}