پاسخ : برنامه یافتن 2 به توان 100 امین عدد اول در زبان ++c
سلام
شما اگه میخوای اصولی کار کنی چند تا نکته رو باید رعایت کنی:
یکیش اینکه برا تمرینات ارزش قائل باشی و روشون وقت صرف کنی تا در دفعات بعدی با دید بهتر با مسائل مشابهش روبرو شی.
بعد اینکه ول هرچی میتونی از مغزت دربیار و یه جایی مثلا رو کاغذ پیاده کن و بعد نتیجه ی افکار بقیه رو نگاه کن. در اینصورت شما اون دید اولیه ی خودت رو که ممکنه خیلی نابتر از افکار بقیه باشه رو از دست ندادی.
بعد اینکه اگه برنامه ت بزرگه سی کن به قطعه های کوچیکتری تقسیمشون کنی و تقسیم بندی هات طوری باشه که بیشتر قطعه هات کاربرد عمومی داشته باشه و بتونی تو یه جای دیگه هم ازش استفاده کنی.
برا کدی که مینویسی ارزش قائل باش.
خب حالا در مورد برنامه ای که میخواستی یه نظر دارم:
با توجه به اینکه 2 بتوان صدمین عدد اول (x) ، خیلی بزرگه و نیاز به یه متغیر x+1 بیتی بدون علامت داره پس برا ذخیره ی همچین عددی میتونی از ارایه هم استفاده کنی. البته راه دیگه (البته سخت تره) اینه که یه کلاس به نام Hint که همون Huge Integer هست برا خودت بسازی و برا این کلاست 4 عمل اصلی رو overload کنی و بعد اون عدد رو تو یه شیء از این کلاس ذخیره کنی . (البته اگه این کارو میتونی انجام بدی برو سراغش )
من مطمئنم شما اگه خودت روش فکر کنی و وقت کافی بذاری و از طرفی با c++ خوب اشنا باشی ، میتونی به نتیجه برسی.
راستش تنها ایده ای که اینجا راهگشاست داشتن یه ساختار برای ذخیره ی اون عدد بزرگه . بقیه ی برنامه مهم نیست. هدف استادم از طرح این سوال دست یافتن به همین امره.
البته اگه سرچ کنی شاید بتونی یه کلاسی که یکی دیگه نوشته برا Huge_int رو پیدا کنی و از اون استفاده کنی. اصل کاری همینه.
سعی کن بقیه ی برنامه رو هم خودت بنویسی.
نتیجه ی کارتو بفرما..
Upload your files Here. Great Azeri Resumable File Host: http://endir.az/index.php?lang=5
پاسخ : برنامه یافتن 2 به توان 100 امین عدد اول در زبان ++c
با سلام
شرمنده من اصلا به اندازه عدد قبل از نوشتهآآهای آقای بابازاده دقت نکرده بودم! صدمین عدد اول حدود ۵۰۰ هست (اینجا) به همین دلیل عدد ۲ به توان ۵۰۰ حدود ۵۰۰ بیت فضا نیاز داره.
البته اگر بخواهید تقریبی محاسبه کنید میآتوانید از اعداد ممیز شناور استفاده کنید (نوع double) تا مقدار تقریبی عدد به دست آید.
کلاسی برای اعداد بزرگ در سیآپلاسآپلاس: http://cpp-bigint.sourceforge.net/
دیدگاه