ในปัญหานี้ เราได้รับตัวเลข 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