C++ 中統計 N 的奇數和偶數旋轉次數


給定一個數字 N。目標是統計 N 的旋轉中產生奇數和偶數的旋轉次數。如果數字 N 是 123,則它的旋轉將是 123、321、132。奇數旋轉是 123 和 321(2),偶數旋轉是 132(1)。

讓我們透過例子來理解。

輸入 - N= 54762

輸出 -

N 的奇數旋轉次數 - 2

N 的偶數旋轉次數 - 3

解釋 - 旋轉是 -

54762, 25476, 62547, 76254, 47625.

偶數旋轉是 3 - 54762、25476、76254

奇數旋轉是 2 - 62547、47625

輸入 - N= 3571

輸出 

N 的奇數旋轉次數 - 4

N 的偶數旋轉次數 - 0

解釋 - 旋轉是 -

3571, 1357, 7135, 5713

偶數旋轉是 0 -

奇數旋轉是 4 - 3571、1357、7135、5713

下面程式中使用的思路如下

可以透過使用個位數作為奇數/偶數來檢查數字是奇數還是偶數。在數字旋轉時,所有數字都將作為個位數出現。因此,我們將數字除以 10 並檢查個位數是偶數/奇數,並增加相應的計數。

  • 將數字作為整數 N。

  • 函式 Even_Odd_rotation(int N) 獲取數字 N 並列印奇數和偶數旋轉的計數。

  • 將初始計數設定為 Even_rotation 和 Odd_rotation。

  • 使用 do-while 迴圈獲取 value=N%10 作為個位數。

  • 如果 value%2==0,則為偶數,增加 Even_rotation,否則增加 Odd_rotation

  • 將 N 減小 10 以獲取下一個個位數。

  • 列印 Even_rotation 作為 N 的偶數旋轉次數。

  • 列印 Odd_rotation 作為 N 的奇數旋轉次數。

示例

#include <bits/stdc++.h>
using namespace std;
void Even_Odd_rotation(int N){
   int Even_rotation = 0;
   int Odd_rotation = 0;
   do{
      int value = N % 10;
      if(value % 2 == 1)
         { Odd_rotation++; }
      else
         { Even_rotation++; }
      N = N / 10;
   } while(N != 0);
   cout<<"Count of rotations of N which are Odd are: "<<Odd_rotation;
   cout<<"\nCount of rotations of N which are Even are: "<<Even_rotation;
}
int main(){
   int N = 341;
   Even_Odd_rotation(N);
   return 0;
}

輸出

如果我們執行以上程式碼,它將生成以下輸出 -

Count of rotations of N which are Odd are: 2
Count of rotations of N which are Even are: 1

更新於: 2020-12-01

128 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.