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

ตรวจสอบว่าตัวเลขคลาดเคลื่อนหรือไม่ใน C++


ที่นี่เราจะเห็นปัญหาหนึ่งที่น่าสนใจในการตรวจสอบว่าตัวเลขคลาดเคลื่อนหรือไม่ มีการกล่าวกันว่าตัวเลขจะคลาดเคลื่อนหากทุกๆ หลัก เป็นตัวเลขเพื่อนบ้านแตกต่างกันสูงสุด 1 ตัวอย่างเช่น ตัวเลข 1223 จะคลาดเคลื่อน แต่ 1256 จะไม่คลาดเคลื่อน

ในการแก้ปัญหานี้ เราต้องตรวจสอบว่าตัวเลขหนึ่งมีค่าใกล้เคียงกันซึ่งมีค่ามากกว่า 1 หรือไม่ หากพบตัวเลขดังกล่าว ให้คืนค่าเท็จ มิฉะนั้น จะเป็นจริง

ตัวอย่าง

#include <iostream>
#include <cmath>
using namespace std;
bool isJumbled(int number) {
   if (number / 10 == 0) //for single digit number is is always jumbled
      return true;
   while (number != 0) {
      if (number / 10 == 0) //when all digits have checked, return true
         return true;
      int curr_digit = number % 10;
      int prev_digit = (number / 10) % 10;
      if (abs(prev_digit - curr_digit) > 1)
         return false;
      number = number / 10;
   }
   return true;
}
int main() {
   int n = 1223;
   if(isJumbled(n)){
      cout << n << " is Jumbled";
   } else {
      cout << n << " is not Jumbled";
   }
}

ผลลัพธ์

1223 is Jumbled