سلام دوست عزیز😃👋
به مسابقه «مسابقه استخدامی ارتباطات سینا» خوش آمدی!
لینکهای مفید برای شرکت در مسابقه:
هرگونه ارتباط با سایر شرکتکنندگان و یا استفاده از ابزارهای تولید کد، مثل chatGPT و... در مسابقات کوئرا ممنوع است و بعد از شناسایی از لیست شرکتکنندگان مسابقه حذف میشوید.
سوال اول تا چهارم جنبه سنجش مهارت حل مسئله را دارد. این سوالات را میتوانید با هر زبان برنامهنویسی که سیستم داوری کوئرا پشتیبانی میکند، حل کنید (اما حل سوالات با زبان C یا ++C برای جذب اولویت دارد).
سوال پنجم مربوط به Socket Programming در زبان C است و فقط باید به این زبان حل شود.
در طول مسابقه، میتوانید سؤالات خود را از قسمت «سوال بپرسید» مطرح کنید.
موفق باشید 😉✌
شرکت ارتباطات سینا دو عدد رجیستر دارد که در هر کدام از آنها یک عدد در مبنا ۲ و با استفاده از حافظه که هر کدام 0
و یا 1
هستند، ذخیره شده است.
میخواهیم دو عدد این رجیسترها را با یکدیگر جمع بزنیم. همانطور که در مبنای ۱۰ وقتی میخواهیم دو عدد را جمع بزنیم، در هر جایگاه یک رقم بین 0
الی 9
به جایگاه بعدی منتقل میشود، در هنگام جمع زدن دو عدد در مبنای ۲، نیز هنگاه جمع زدن دو عدد در هر جایگاه یک رقم که میتواند 0
و یا 1
باشد به جایگاه بعدی منتقل میشود. به این رقم میگوییم.
در این سوال دو عددی که داخل رجیسترها ذخیره شدهاند را داریم. اما در هر دوی رجیسترها بعضی
از رقمها نویز داشتهاند و نمیدانیم داخل آنها 0
نوشته شده است و یا 1
. اما میدانیم حداکثر یکی از این ارقام نویز خورده برابر 1
است و بقیه آنها برابر 0
هستند.
کسی خبر رسانده است که وقتی این دو عدد را جمع میکنیم، به ازای هر جایگاهی که آن برابر باشد، رجیسترها یک واحد ناراحت میشوند. برای اینکه بتوانیم بیشترین میزان ممکن رجیسترها را ناراحت کنیم سوال زیر از شما پرسیده شده است.
در بین تمام حالاتی که دو عدد ما میتوانند باشند. به این معنی که حداکثر یکی از ارقام نویز گرفته برابر 1
و بقیه برابر 0
باشند، بیشترین تعداد ای که در زمان جمع زدن این دو عدد برابر با 1
خواهد بود چند تا است.
در سطر اول ورودی عدد داده میشود که نشاندهنده تعداد ارقام دو عدد مورد نظر در مبنا دو است.
سپس در سطر دوم و سوم دو عدد به طول رقم و در مبنای دو ورودی داده میشوند. هر رقم از این دو عدد با 0
و یا 1
و یا کاراکتر ؟
نمایش داده میشود. که علامت سوال نشاندهنده نویز در رقم مشخص شده است.
در تنها خط خروجی باید یک عدد خروجی دهید که نشاندهنده بیشترین تعداد برابر با 1
ای است که جمع این دو رجیستر میتواند داشته باشد. دقت کنید خروجی شما باید عددی بین و باشد.
در این حالت اگر تنها علامتسوال را برابر عدد 1
در نظر بگیریم بیشترین میزان ممکن که برابر ۳ عدد است را تولید میکنیم.