使用 C++ 查詢給定數字的斜率


在這個問題中,我們給定一個數字 N。我們的任務是找到給定數字的斜率

數字的斜率是數字中最大值和最小值數字的總數。

最大值數字是指其兩個鄰居(前一個和後一個)都較小的數字。

最小值數字是指其兩個鄰居(前一個和後一個)都較大的數字。

讓我們舉一個例子來理解這個問題,

輸入

N = 9594459

輸出

2

解決方案方法

解決這個問題的一個簡單方法是從排除第一個和最後一個(它們不計入最大值或最小值)開始,逐位遍歷數字。現在,對於每個數字,我們將檢查其數字是否大於或小於其之前和之後的數字。最後,我們將返回最大值和最小值的計數。

示例

程式說明我們解決方案的工作原理

#include <iostream>
using namespace std;
int findNumberSlope(string N, int len){
   int slope = 0;
   for (int i = 1; i < len - 1; i++) {
      if (N[i] > N[i - 1] && N[i] > N[i + 1])
         slope++;
      else if (N[i] < N[i - 1] && N[i] < N[i + 1])
         slope++;
   }
   return slope;
}
int main(){
   string N = "574473434329";
   int len = N.size();
   cout<<" The slope of the given number is "<<findNumberSlope(N, len);
   return 0;
}

輸出

The slope of the given number is 7

更新於: 2022年2月14日

345 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.