Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

หาความชันของตัวเลขที่กำหนดโดยใช้ C++


ในปัญหานี้ เราได้รับตัวเลข N ภารกิจของเราคือ หาความชันของตัวเลขที่กำหนด

ความชันของตัวเลข คือจำนวนรวมของหลักสูงสุดและหลักต่ำสุดในตัวเลข

หลักสูงสุด (Maxima digit) คือหลักที่เพื่อนบนทั้งสองข้าง (ก่อนหน้าและถัดไป) มีค่าน้อยกว่า

หลักต่ำสุด (Minima digit) คือหลักที่เพื่อนบนทั้งสองข้าง (ก่อนหน้าและถัดไป) มีค่ามากกว่า

มาดูตัวอย่างเพื่อเข้าใจปัญหา

อินพุต

 N = 9594459

เอาต์พุต

 2

วิธีการแก้ปัญหา

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