# Find the slope of the given number

Find the slope of the given number num. Slope of a number is the count of the minima and maxima digits in it. A digit is called a minima if the digit is lesser than the digit before and after it. Similarly a digit is called a maxima if the digit is greater than the digit before and after it.

Examples:

```Input : 1213321
Output : 2
1213321- The highlighted digit '2' is a maxima and
highlighted digit '1' is a minima.

Input : 273299302236131
Output : 6
```

Approach: Traverse the digits of the given number from the 2nd digit up to the 2nd last digit. For each digit check whether the digit is greater or smaller than digits before and after it. Get the count of such digits.

## C++

 `// C++ implementation to find slope of a number ` `#include ` ` `  `using` `namespace` `std; ` ` `  `// function to find slope of a number ` `int` `slopeOfNum(string num, ``int` `n) ` `{ ` `    ``// to store slope of the given ` `    ``// number 'num' ` `    ``int` `slope = 0; ` ` `  `    ``// loop from the 2nd digit up to the 2nd last digit ` `    ``// of the given number 'num' ` `    ``for` `(``int` `i = 1; i < n - 1; i++) { ` ` `  `        ``// if the digit is a maxima ` `        ``if` `(num[i] > num[i - 1] && num[i] > num[i + 1]) ` `            ``slope++; ` ` `  `        ``// if the digit is a minima ` `        ``else` `if` `(num[i] < num[i - 1] && num[i] < num[i + 1]) ` `            ``slope++; ` `    ``} ` ` `  `    ``// required slope ` `    ``return` `slope; ` `} ` ` `  `// Driver program to test above ` `int` `main() ` `{ ` `    ``string num = ``"1213321"``; ` `    ``int` `n = num.size(); ` `    ``cout << ``"Slpoe = "` `         ``<< slopeOfNum(num, n); ` `    ``return` `0; ` `} `

## Java

 `// Java implementation to  ` `// find slope of a number ` `import` `java.io.*; ` ` `  `class` `GFG  ` `{ ` `     `  `    ``// function to find ` `    ``// slope of a number ` `    ``static` `int` `slopeOfNum(String num, ``int` `n) ` `    ``{ ` `        ``// to store slope of the  ` `        ``// given number 'num' ` `        ``int` `slope = ``0``; ` `     `  `        ``// loop from the 2nd digit  ` `        ``// up to the 2nd last digit ` `        ``// of the given number 'num' ` `        ``for` `(``int` `i = ``1``; i < n - ``1``; i++) ` `        ``{ ` `     `  `            ``// if the digit is a maxima ` `            ``if` `(num.charAt(i) > num.charAt(i - ``1``) &&  ` `                ``num.charAt(i) > num.charAt(i + ``1``)) ` `                ``slope++; ` `     `  `            ``// if the digit is a minima ` `            ``else` `if` `(num.charAt(i) < num.charAt(i - ``1``) &&  ` `                     ``num.charAt(i) < num.charAt(i + ``1``)) ` `                ``slope++; ` `        ``} ` `     `  `        ``// required slope ` `        ``return` `slope; ` `    ``} ` ` `  `    ``// Driver code ` `    ``public` `static` `void` `main (String[] args)  ` `    ``{ ` `        ``String num = ``"1213321"``; ` `        ``int` `n = num.length(); ` `        ``System.out.println(``"Slope = "` `+  ` `                    ``slopeOfNum(num, n)); ` `    ``} ` `} ` ` `  `// This code is contributed by Mahadev99 `

## Python 3

 `# Python 3 implementation to find  ` `# slope of a number ` ` `  `# function to find slope of a number ` `def` `slopeOfNum(num, n): ` ` `  `    ``# to store slope of the given ` `    ``# number 'num' ` `    ``slope ``=` `0` ` `  `    ``# loop from the 2nd digit up  ` `    ``# to the 2nd last digit ` `    ``# of the given number 'num' ` `    ``for` `i ``in` `range``(``1``, n ``-` `1``) : ` ` `  `        ``# if the digit is a maxima ` `        ``if` `(num[i] > num[i ``-` `1``] ``and`  `            ``num[i] > num[i ``+` `1``]): ` `            ``slope ``+``=` `1` ` `  `        ``# if the digit is a minima ` `        ``elif` `(num[i] < num[i ``-` `1``] ``and` `              ``num[i] < num[i ``+` `1``]): ` `            ``slope ``+``=` `1` ` `  `    ``# required slope ` `    ``return` `slope ` ` `  `# Driver Code ` `if` `__name__ ``=``=` `"__main__"``: ` `     `  `    ``num ``=` `"1213321"` `    ``n ``=` `len``(num) ` `    ``print``(``"Slpoe ="``, slopeOfNum(num, n)) ` ` `  `# This code is contributed by ita_c `

## C#

 `// C# implementation to  ` `// find slope of a number ` `class` `GFG  ` `{ ` ` `  `// function to find slope of a number ` `static` `int` `slopeOfNum(``string` `num, ``int` `n) ` `{ ` `    ``// to store slope of the  ` `    ``// given number 'num' ` `    ``int` `slope = 0; ` ` `  `    ``// loop from the 2nd digit  ` `    ``// up to the 2nd last digit ` `    ``// of the given number 'num' ` `    ``for` `(``int` `i = 1; i < n - 1; i++) ` `    ``{ ` ` `  `        ``// if the digit is a maxima ` `        ``if` `(num[i] > num[i - 1] &&  ` `            ``num[i] > num[i + 1]) ` `            ``slope++; ` ` `  `        ``// if the digit is a minima ` `        ``else` `if` `(num[i] < num[i - 1] &&  ` `                 ``num[i] < num[i + 1]) ` `            ``slope++; ` `    ``} ` ` `  `    ``// required slope ` `    ``return` `slope; ` `} ` ` `  `// Driver code ` `public` `static` `void` `Main()  ` `{ ` `    ``string` `num = ``"1213321"``; ` `    ``int` `n = num.Length; ` `    ``System.Console.WriteLine(``"Slope = "` `+  ` `                     ``slopeOfNum(num, n)); ` `} ` `} ` ` `  `// This code is contributed by mits `

## PHP

 ` ``\$num``[``\$i` `- 1] && ` `            ``\$num``[``\$i``] > ``\$num``[``\$i` `+ 1]) ` `            ``\$slope``++; ` ` `  `        ``// if the digit is a minima ` `        ``else` `if` `(``\$num``[``\$i``] < ``\$num``[``\$i` `- 1] &&  ` `                 ``\$num``[``\$i``] < ``\$num``[``\$i` `+ 1]) ` `            ``\$slope``++; ` `    ``} ` ` `  `    ``// required slope ` `    ``return` `\$slope``; ` `} ` ` `  `// Driver Code ` `\$num` `= ``"1213321"``; ` `\$n` `= ``strlen``(``\$num``); ` `echo` `"Slpoe = "` `. slopeOfNum(``\$num``, ``\$n``); ` ` `  `// This code is contributed ` `// by Akanksha Rai ` `?> `

Output:

```Slope = 2
```

Time complexity: O(n).

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.