ในปัญหานี้ เราได้รับตัวเลข N หน้าที่ของเราคือ หาความชันของจำนวนที่กำหนด .
ความชันของตัวเลข คือจำนวนรวมของตัวเลขสูงสุดและต่ำสุดในตัวเลข
ตัวเลขสูงสุด คือตัวเลขที่มีเพื่อนบ้านทั้งสอง (ก่อนหน้าและถัดไป) น้อยกว่า
ตัวเลขสูงสุด คือตัวเลขที่มีเพื่อนบ้านทั้งสอง (ก่อนหน้าและถัดไป) มากกว่า
มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน
ป้อนข้อมูล
N = 9594459
ผลผลิต
2
แนวทางการแก้ปัญหา
วิธีแก้ปัญหาอย่างง่ายคือการข้ามผ่านตัวเลขหลักทีละหลักโดยไม่รวมตัวแรกและตัวสุดท้าย (ไม่นับจากรูปแบบ maxima หรือ minima) ตอนนี้ สำหรับแต่ละหลัก เราจะตรวจสอบว่าตัวเลขนั้นมากกว่าหรือน้อยกว่าตัวเลขก่อนและหลัง ในที่สุด เราจะคืนค่าจำนวนสูงสุดและค่าต่ำสุดกลับ
ตัวอย่าง
โปรแกรมเพื่อแสดงการทำงานของโซลูชันของเรา
#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