تولید اعداد رشته ای به کمک تابع بازگشتی (تمرین پایتون پیشرفته – درسمن)

سوال

برنامه ای بنویسید که بدون استفاده از نوع داده عددی بتواند اعداد ۱۰۰۰ تا ۲۰۰۰۰ را چاپ کند؟!!!

منظور از این سوال این است که یک متغیر رشته ای(عدد رشته ای) را در نظر گرفته و سعی کنیم که کاراکترهای آنرا تغییر دهیم تا عددی بعد آن تولید شود. (ترجیحا از تابع بازگشتی استفاده کنید)

مانند زیر :

“۱۰۰۰” –  “۱۰۰۱”  – “۱۰۰۲” –  “۱۰۰۳” – …. – “۱۰۰۹” – “۱۰۱۰” – “۱۰۱۱” – …. –  “۱۰۱۹” – “۱۰۲۰” – ….

در حال بررسی 0
مهدی عباسی 3 ماه 3 پاسخ ها 152 دیده شده 1

پاسخ ها ( ۳ )

  1. با سلام

    مسئله که فرمودین با ارور مواجه شدم ۹۹۶ عدد برمیگرداند

    RecursionError: maximum recursion depth exceeded while calling a Python object

    مرسی استاد

  2. که البته تا انتهای محدوده خواسته شده نمیرود!

  3. توضیحاتی در خصوص ارور “RecursionError: maximum recursion depth exceeded while calling a Python object” ک دوستان بر خوردند:

    پایتون این ارور را برای حافظت از فضای حافظه ما ایجاد کرده که توابع بازگشتی بیش از حد از حافظه ما استفاده نکنند.

    برای رفع این ارور دو راه حل وجود داره:

    ۱-استفاده از یک الگوریتم iterabl (استفاده از حلقه ها)

    اولین و بهترین روش استفاده از ساختار و حلقه های  itrable  است

    ۲-افزایش محدوده تابع بازگشتی

    با استفاده از دستور sys.setrecursionlimit(5000) مدوده تابع بازگشتی را به ۵۰۰۰ افزایش میدهیم ، ک خیلی مطلوب نیست چون حافظه بیشتری استفاده میشه

     

ارسال یک پاسخ