题目链接:http://vjudge.net/problem/HDU-1279
模拟这个过程,哎,中途代码错了好几次,感觉和自己if else使用习惯有关。
1 #include <cstdio> 2 #include <cstring> 3 #include <cmath> 4 #include <iostream> 5 #include <algorithm> 6 #include <string> 7 #include <cstdlib> 8 9 using namespace std; 10 11 int main() 12 { 13 int t,n,ans[1000],cnt,i; 14 scanf("%d",&t); 15 while(t--) 16 { 17 cnt=0; 18 scanf("%d",&n); 19 while(n!=1) 20 { 21 if(n%2==0) n/=2; 22 else 23 { 24 cnt++; 25 ans[cnt]=n; 26 n=3*n+1; 27 } 28 } 29 if(cnt==0) printf("No number can be output ! "); 30 else if (cnt==1) printf("%d ",ans[1]); 31 else 32 { 33 for(i=1;i<cnt;i++) 34 printf("%d ",ans[i]); 35 printf("%d ",ans[i]); 36 } 37 } 38 return 0; 39 }