یک برنامه بنویسید که تعداد N رشتهی عددی را از ورودی بخواند و مجموعِ اعداد متناظر را بهصورت یک عدد صحیح 64-بیتی چاپ کند.
11.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 00:25 0.0
برای حل، در C++ تعداد N را خوانده و در یک حلقه رشتهها را با std::string بگیرید و برای تبدیل هر رشته به عدد صحیح 64-بیتی از تابع std::atoll (هدر ) استفاده کنید و حاصل را در یک متغیر long long یا int64_t جمع کنید. برای کارهای پردازشی/علمی و کاربردهای HPC از ورود/خروج سریع (ios::sync_with_stdio(false); cin.tie(nullptr);) استفاده کنید، به overflow توجه کنید و در صورت نیاز اعتبارسنجی رشتهها یا استفاده از strtoll برای کنترل خطا را مد نظر قرار دهید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
استفاده از std::atoll سریع است اما خطاها را گزارش نمیکند؛ بهتر است از strtoll با بررسی errno و اشارهگر بازگشتی برای تشخیص تبدیل ناموفق یا خارجازبازه استفاده کنید. برای جمعِ مقادیر از int64_t استفاده کنید و در صورت احتمال سرریزِ جمع از نوع بزرگتری مثل __int128 بهره ببرید و نهایتاً با کنترل دامنه نتیجه را به int64_t تبدیل کنید. برای ورودیهای بزرگ یا تعداد زیاد N فعالسازی ios::sync_with_stdio(false) و cin.tie(nullptr) سرعت خوانش را بهطور محسوسی افزایش میدهد.
گزارش