عدد X را تصور کنید که از چند رقتم تشکیل یافته است؛ حال قصد داریم بفهمیم که آیا این عدد برای مثال شامل عدد y میشود یا خیر. برای مثال، اگر x برابر 1456740 باشد، این عدد، دارای اعداد 1، 4، 5، 6، 7 و 0 میباشد؛ همچنین این عدد، اعداد 14، 45 و … ر نیز دارد!
قطعه کد
کد زیر را در نظر بگیرید:
#include using namespace std; bool containsDigit(int number, int digit) { if (number == digit) return true; while (number != 0) { int curr_digit = number % 10; if (curr_digit == digit) return true; number /= 10; } return false; } int main() { if (containsDigit(125014, 0)) { cout << "125014 contains 0\n"; } return 0; }
تصور کنید میخواهیم تشخیص دهیم رقم 1 در عدد 100 وجود دارد یا خیر؛ بدین منظور، دهگان به دهگان عدد را حذف میکنیم؛ با تقسیم 100 به عدد 10، باقیمانده صفر شده و نتیجه تقسیم نیز 10 میشود؛ سپس اگر 10 را نیز به 10 تقسیم کنیم، باقی ماننده مجدد صفر شده و نتیجه تقسیم نیز 1 میشود؛ با تقسیم مجدد 1 به 10، باقی مانده همان 1 خواهد بود. بنابراین هربار باقی مانده را بررسی میکنیم که برابر آن رقم مورد نظر هست یا خیر و در غیر این صورت، یک تقسیم میکنیم تا یک دهگان از عدد حذف شده و به عدد پایین تر برویم.
نظرات ثبت شده بدون دیدگاه