使用 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
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP