使用 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.