2016年5月7日 星期六

a021~a025說明

a021 我討厭偶數
這題輸入一整數 n ,若偶則一直除2,直到奇數為止
while( n%2==0 ) n/=2;  是偶數就除
cout n    ,不是偶數了才印

a022 細菌繁殖
輸入 n m , n 一直乘3,乘幾次才會>=m

設次數 cnt = 0;  
  while( n < m )   當n<m繼續   
  {  
     ++ cnt ;   次數+1
     n *= 3;    每次乘3
  }  
 cout 次數

a023 3N+1
輸入1個 n , 偶數除2,奇數*3+1,直到1為止,輸入的數及1也算,
含中間變化的數共出現幾個不同的數
設個數 cnt = 1;  輸入的數字算 1 個   
  while( n != 1 )  不是 1 繼續  
  {  
     if( n%2 == 0 ) n/=2;   偶數 除2   
     else n = n*3+1;        奇數 *3+1   
     ++cnt ;       計數+1        
  }  
cout 個數

a024 所有位數和
輸入1個數 n 算出每位數的和,例 12345則和為 1+2+3+4+5 = 15
設和 sum = 0;  
  while( n != 0 ) 每次取個位後除10,直到0為止  
  {  
    sum += ( n%10 );  //取個位數 將之加入和 sum內 
    n /= 10;          // 除10 , 因 n 宣告為整數,小數會捨棄         
  }  
cout sum

a025 數字倒轉
輸入1個數 n ,將其倒著印出,例 12345 印 54321,若1200只印21
類似a024但 sum需每次乘10
設定和 sum = 0;  
  while( n != 0 )  //和每次乘10後,加上原數的個位數
  {                      // 並每次將原數除10
    sum = sum * 10 + ( n%10 );  //取個位數 倒著放     
    n /= 10;          // 除10 , 因 n 宣告為整數,小數會捨棄         
  }  
cout sum

0 意見:

張貼留言