เลขเด็ดคือเลขจำนวนเต็มพิเศษ จากตัวเลขพื้นฐาน ตัวเลขพิเศษบางตัวจะถูกกำจัดโดยตำแหน่ง แทนค่าของพวกเขา สำหรับตำแหน่งของพวกเขา ตัวเลขจะถูกตัดออก เบอร์ที่ไม่ลบคือเลขเด็ด
การลบหมายเลขเป็นไปตามกฎบางอย่าง ตอนแรกเลขทุกวินาทีจะถูกลบ หลังจากนั้น หมายเลขที่ 3 ทั้งหมดจะถูกลบไปเรื่อยๆ
นี่คือตัวอย่างบางส่วน −
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 (1 – 25 all) 1 3 5 7 9 11 13 15 17 19 21 23 25 (deleting all 2nd numbers) 1 3 7 9 13 15 19 21 25 (All 3rd numbers are deleted, starting from 5) 1 3 7 9 13 15 21 25 (All 7th numbers are deleted starting from 19)
อินพุตและเอาต์พุต
อินพุต:ใส่ตัวเลขเพื่อตรวจสอบว่าโชคดีหรือไม่ ให้เลขเป็น 13 ผลลัพธ์:13 เป็นเลขนำโชค
อัลกอริทึม
isLuckyNumber(number)
ป้อนข้อมูล - ตัวเลข
ผลลัพธ์ − ตรวจเลขเด็ดหรือเปล่า
Begin counter := 2 (It is static data, not be initialized again in recursion call) if counter > n, then return 1 if n mod counter = 0, then return 0 n := n – (n / counter) counter := counter + 1 isLuckyNumber(n) End
ตัวอย่าง
#include <iostream> using namespace std; int counter = 2; //used during recursion bool isLuckyNumber(int n) { if(counter > n) return 1; if(n%counter == 0) return 0; n -= n/counter; //n will be next position for recursion counter++; return isLuckyNumber(n); } int main() { int x = 13; if(isLuckyNumber(x)) cout << x<<" is a lucky number."; else cout << x<<" is not a lucky number."; }
ผลลัพธ์
13 is a lucky number.