首頁 >後端開發 >C++ >起伏的數字

起伏的數字

WBOY
WBOY轉載
2023-08-28 13:41:061291瀏覽

起伏的數字

在本文中,我們將學習什麼是波動數,並介紹我們檢查給定數字是否為波動數的方法,使用一個布林函數來檢查波動數。

問題陳述

我們將得到一個數字,我們的任務是檢查給定的數字是否是波動的。

讓我們先來了解波動數;

波動數字是指只由兩種類型的數字組成,每隔一個數字都相同的數字。

我們可以說一個波動的數字的形式是“PQPQPQ”,其中P和Q是數字系統中的兩個不同的數字。

波動數的第一位和第二位數字永遠不能相同,即 11111 不是波動數。

我們通常將非平凡的波動數字僅僅視為波動數字,這意味著波動數字至少需要由3個數字組成。也就是說,我們不能只用兩個數字形成一個波動數字。

讓我們現在考慮一些波動數字的例子 -

494, 484, 474, 464, 454, 434, 424, 414, 404, 393, 383, 373, 363, 353, 343, 323, 313, 303, 101, 121, 131, 141, 151, 161 , 171, 181, 191, 202 及更多。

一些高價值的波動數字是- 1212121212,3838383838,57575757575757等。

對於任何d 位數字,其中d>=3(d 至少包含3 位數字),我們可以有9 * 9 = 81 個波動數字,因為第一個(從1 到9 的數字)值有9個選項,類似地9選項(從0 到9 的數字,除了第一位數字)。

解決方案

我們有一個數字,我們的任務是找出它是否起伏不定。

有一些關於數字的限制 −

  • 它只包含兩種類型的數字。

  • 兩個數字不能相同。

  • 至少包含3位數字

  • #數字中相鄰的數字不相同。

範例

Given Number : Num = 252
Result: Yes, the number is undulating
Given Number : Num = 64664
Result: =No, the number is not undulating

範例

在下面的範例中,我們檢查給定的數字是否是一個波動數字。我們使用一個不是波動數字的數字進行了演示。您可以嘗試使用不同的數字來檢查該數字是否為波動數字。

#include <bits/stdc++.h>
using namespace std;

// boolean function that checks
// is the number undulating
bool Is_number_undulating(string num){

   // important to check
   // if first and second digit
   // are equal
   if (num.length() <= 2 || num[0]==num[1])
   return false;
   for (int iterator = 2; iterator < num.length(); iterator++)
   if (num[iterator - 2] != num[iterator])
   false;
   return true;
}
int main(){
   string num = "111111";
   if (Is_number_undulating(num))
   cout << " Yes the number is undulating ";
   else
   cout << " No, the number is not undulating ";
}

輸出

當您執行上述 C 程式時,它將產生以下輸出 -

No, the number is not undulating

時間複雜度 - 對於n位數字,時間複雜度為O(N)。

空間複雜度 - 由於沒有使用外部空間,輔助空間複雜度為O(N)。

在本文中,我們詳細了解什麼是波動數以及檢查給定數字是否波動的程式碼解決方案。

以上是起伏的數字的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除