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

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


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