پاسخ سوال جمع بزرگان کوئرا
در این نوشته تمرین “جمع بزرگان” که در وبسایت کوئرا موجود است را برای شما کاربران عزیز حل کردهایم.
پاسخ سوال جمع بزرگان کوئرا
کیانوش متقاضی عضویت در سازمان OC است. در روز اول مصاحبه، سازمان پشتکار او را مورد بررسی قرار داده است. سوالهای روز اول مصاحبهی کیانوش، اینچنین بودند: عبارتی شامل دو عدد بزرگ و یک عملیات به شما میدهند. اگر عملیات جمع بود، باید مجموع آن دو عدد را خروجی دهید و اگر عملیات ضرب بود، باید ضرب آن دو را خروجی دهید… کیانوش با شنیدن این جملات، بدون فرض اضافهای با عزمی راسخ شروع به پاسخ دادن به سوالات کرد و وقت بسیاری روی آن گذاشت؛ غافل از اینکه در ادامهی صورت سوال آمده است که اعداد داده شده حتماُ توانی از 10 هستند. (میتوان آنها را بصورت 10^ نوشت که x یک عدد صحیح نامنفی است.) کیانوش پس از این مصاحبه درخواست کرده است که به شما بگوییم برنامهای بنویسید که با ورودی گرفتن اعداد و عملگر، پاسخ مسئله را خروجی دهد.
ورودی سوال جمع بزرگان
ورودی شامل سه خط میشود. در خط اول و سوم ورودی هریک شامل یک عدد هستند. تضمین میشود هریک از این اعداد را میتوان بصورت 10^ نوشت که x عددی صحیح بین ۰ تا ۱۰۰ است. خط دوم ورودی شامل یک کاراکتر است. اگر آن کاراکتر + بود شما باید مجموع اعداد داده شده را خروجی دهید و اگر * بود باید ضرب آنها را خروجی دهید.
خروجی سوال جمع بزرگان
در تنها سطر خروجی یک عدد چاپ کنید که برابر پاسخ عملیات دادهشده است.
حل سوال جمع بزرگان
#include <iostream>
using namespace std;
int main()
{
string a,b;
string command;
cin >> a;
cin >> command;
cin >> b;
if (a.length() < b.length()){
string temp = b;
b = a;
a = temp;
}
if (command == "+"){
a[a.length() - b.length()] = a[a.length() - b.length()] + 1;
}else if (command == "*"){
for (int i = 1; i < b.length(); i++) {
a = a + '0';
}
}
cout << a;
return 0;
}
منبع سوال: وبسایت کوئرا
اگر روش حل بهتری برای “تمرین جمع بزرگان” دارید برای ما ارسال کنید تا با نام خودتان به اشتراک بگذاریم.
اگر سوال خاصی را مدنظر دارید در بخش نظرات برای ما ارسال کنید تا حل آن سوال را در الویت محتوای سایت بگذاریم.



















آیا ترتیب وارد کردن اعداد در نتیجه تاثیر دارد؟
خیر، در این مسئله ترتیب وارد کردن اعداد در نتیجه نهایی تفاوتی ایجاد نمیکند.
اگر اعداد خیلی بزرگ باشند، اجرای این الگوریتم کند میشود؟
بله، اگر اعداد بسیار بزرگ باشند، این الگوریتم ممکن است کند شود. برای اعداد بسیار بزرگ، استفاده از کتابخانههای مخصوص محاسبات اعداد بزرگ (Big Integer) توصیه میشود
چرا طول رشتهها در ابتدا مقایسه شده و جایگذاری انجام شده است؟
مقایسه طول رشتهها برای اطمینان از این است که عدد بزرگتر در متغیر a قرار گیرد و عملیات جمع و ضرب به درستی روی آن اعمال شود.
آیا این روش حافظه زیادی مصرف میکند برای اعداد بزرگ؟
این روش برای اعداد در بازه مشخص شده (توانهای ۱۰ تا ۱۰۰) بهینه است و مصرف حافظه زیادی ندارد
چرا از string برای نگه داشتن اعداد استفاده شده و آرایهای هم ممکن بود؟
استفاده از string به دلیل سادگی در مدیریت اعداد بزرگ و عدم نیاز به تعیین حداکثر اندازه از پیش، انتخاب مناسبی برای این مسئله است. آرایهها نیز قابل استفاده بودند اما ممکن بود پیچیدگی بیشتری در مدیریت اندازه و عملیات داشته باشند.