memset(mark,-1,sizeof(mark));
对每个输入的数,将它所包含的数标志置1,本身标志置0.
最后输出所有标志为0的数。
#include <iostream>
using namespace std;
int main()
{
int k,flag=0;
cin>>k;
int mark[101];
for(int i=0;i<=100;i++)
mark[i]=-1;
for(int i=0;i<k;i++)
{
int temp;
cin>>temp;
if(mark[temp]==-1)
{
mark[temp]=0;
while(temp>1)
{
if(temp%2==1)
temp=3*temp+1;
temp/=2;
if(temp<=100)
mark[temp]=1;
}
}
}
for(int i=100;i>=0;i--)
{
if(flag==0&&mark[i]==0)
{
cout<<i;
flag=1;
}
else if(flag==1&&mark[i]==0)
cout<<" "<<i;
}
cout<<endl;
return 0;
}