1005 继续(3n+1)猜想(25分) *
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; }