Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tìm độ dốc của số nguyên bằng C++

Mô tả bài toán

Độ dốc của một số là tổng số chữ số cực đại (lớn hơn cả hai hàng xóm) và cực tiểu (nhỏ hơn cả hai hàng xóm). Chữ số đầu và cuối không xét.

Ví dụ

N = 9594459 → Output: 2 (chữ số 9 ở giữa là cực đại, 4 là cực tiểu).

Giải thuật

Duyệt chuỗi từ chỉ số 1 đến len-2. Đếm số chữ số thỏa s[i] > s[i-1] && s[i] > s[i+1] (cực đại) hoặc s[i] < s[i-1] && s[i] < s[i+1] (cực tiểu).

Mã nguồn C++

#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;
}

Đầu ra

The slope of the given number is 7