Ở đây chúng ta sẽ thấy một vấn đề thú vị để kiểm tra xem một số có bị lộn xộn hay không. Một số được cho là bị lộn xộn nếu, đối với mọi chữ số, chữ số hàng xóm của nó khác nhau tối đa 1. Ví dụ:số 1223 bị lộn xộn, nhưng số 1256 không bị lộn xộn.
Để giải quyết vấn đề này, chúng ta phải kiểm tra xem một chữ số có hàng xóm với hiệu lớn hơn 1. Nếu tìm thấy chữ số đó, thì trả về false, ngược lại là true.
Ví dụ
#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"; } }
Đầu ra
1223 is Jumbled