پاسخ سوال بارکد + کوئرا

پاسخ سوال بارکد + کوئرا
پاسخ سوال بارکد + کوئرا

پاسخ سوال بارکد + کوئرا

در این نوشته تمرین “بارکد” که در وبسایت کوئرا موجود می باشد را برای شما کاربران عزیز حل کرده ایم.

 

در مورد سایت کوئرا بیشتر بخوانید…

 

تمرین بارکد کوئرا + سی پلاس پلاس

امیر هر روز برای رفتن به محل کارش از مترو استفاده می‌کند. یک بلیت مترو یک بارکد نه در نه است که هر خانه آن سیاه یا سفید است. متاسفانه بعضی از خانه‌های بلیت امیر کمرنگ شده و معلوم نیست که چه رنگی بودند.

هر بارکد را با یک جدول از اعداد صفر و یک نشان می‌دهیم؛ عدد یک نشان‌دهنده رنگ سیاه و صفر نشان‌دهنده رنگ سفید است.

هر بارکد چهار مربع سه در سه که محیط آن سیاه و درونش سفید است، دارد. چهار مربع را می‌توانید در گوشه‌های شکل زیر مشاهده کنید:

111###111
101###101
111###111
#########
#########
#########
111###111
101###101
111###111

توجه کنید که مربع‌های سه در سه گوشه همه بارکدها، باید دقیقا مانند شکل بالا باشند و در غیر این صورت قابل استفاده در مترو نیستند.

حال یک بارکد به شما داده شده است؛ اگر رنگ یک خانه معلوم نبود آن را با عدد دو نشان می‌دهیم.

شما باید به امیر بگویید که این بارکد چند حالت مختلف می‌تواند داشته باشد؛ توجه کنید که بارکد امیر ممکن است در هیچ حالتی درست نباشد و در آن صورت جواب صفر است (بارکد در صورتی نامعتبر است که یکی از مربع‌های سه در سه گوشه نتوانند به شکل گفته شده باشند).

 

ورودی سوال بارکد

ورودی شامل ۹ خط است که هر خط شامل ۹ کاراکتر است که بدون فاصله آمده‌اند. هر کاراکتر یکی از ارقام ۰ تا ۲ است. این ارقام به ترتیب نشان‌دهنده رنگ سفید، رنگ سیاه و خانه با رنگ نامعلوم هستند.

 

خروجی سوال بارکد

در تنها خط خروجی تعداد بارکدهای ممکن را چاپ کنید.

 

حل سوال بارکد (به زبان برنامه نویسی سی پلاس پلاس)

import math
 
barcode = []
 
for i in range(9):
    barcode.append(input())
 
able = True
halat = 1
 
for i in range(9):
    for j in range(9):
        if abs(i-4) >= 2 and abs(j-4) >= 2:
            if abs(i-4) == 3 and abs(j-4) == 3:
                if barcode[i][j] == '1':
                    able = False
            else:
                if barcode[i][j] == '0':
                    able = False
        elif barcode[i][j] == '2':
                halat *= 2
 
if able is False:
    print(0)
else:
    print(halat)

 

 

منبع سوال : وبسایت کوئرا

 

اگر روش حل بهتری برای “تمرین بارکد” دارید برای ما ارسال کنید تا با نام خودتان به اشتراک بگذاریم.

اگر سوال خاصی را مدنظر دارید در بخش نظرات برای ما ارسال کنید تا حل آن سوال را در الویت محتوای سایت بگذاریم.

موفق باشید.

برای امتیاز به این نوشته کلیک کنید!
[کل: 0 میانگین: 0]