Được đưa ra với một số và nhiệm vụ là kiểm tra xem số đầu vào có phải là số may mắn hay không và hiển thị kết quả.
Con số may mắn là gì
Số may mắn là số mà mỗi chữ số đều khác nhau và nếu có ít nhất một chữ số lặp lại với số đó sẽ không được coi là số may mắn.
Ví dụ
Input-: n = 1234 Output-: it is a lucky number Explanation-: As there is no repeating digit in a number n so it is a lucky number Input-: n = 3434 Output-: it is not a lucky number Explanation-: In the given number n, 3 and 4 are repeating twice so it is not a lucky number
Phương pháp tiếp cận chúng tôi đang sử dụng trong chương trình nhất định như sau -
- Nhập số n từ người dùng để kiểm tra xem đó có phải là số may mắn hay không
- Duyệt toàn bộ chữ số cho đến hết cỡ chữ số
- Đánh dấu chữ số được truy cập vào mỗi lần truy cập và kiểm tra xem nó đã được tìm thấy hay chưa
- Hiển thị xem số đã cho có phải là số may mắn hay không
THUẬT TOÁN
Start Step1-> declare function to check whether a given number is lucky or not bool check_lucky(int size) declare bool arr[10] Loop For int i=0 and i<10 and i++ Set arr[i] = false End Loop While(size > 0) declare int digit = size % 10 IF (arr[digit]) return false End set arr[digit] = true Set size = size/10 End return true Step 2-> In main() Declare int arr[] = {0,34,2345,1249,1232} calculate int size = sizeof(arr)/sizeof(arr[0]) Loop For int i=0 and i<size and i++ check_lucky(arr[i])? print is Lucky : print is not Lucky End Stop
Ví dụ
#include<iostream> using namespace std; //return true if a number if lucky. bool check_lucky(int size) { bool arr[10]; for (int i=0; i<10; i++) arr[i] = false; while (size > 0) { int digit = size % 10; if (arr[digit]) return false; arr[digit] = true; size = size/10; } return true; } int main() { int arr[] = {0,34,2345,1249,1232}; int size = sizeof(arr)/sizeof(arr[0]); for (int i=0; i<size; i++) check_lucky(arr[i])? cout << arr[i] << " is Lucky \n": cout << arr[i] << " is not Lucky \n"; return 0; }
Đầu ra
19 is Lucky 34 is Lucky 2345 is Lucky 1249 is Lucky 1232 is not Lucky