سوالات چالشی هفته چهارم لیگ مایکد به همراه پاسخهای مورد انتظار تست کیسها جهت آشنایی بیشتر شرکتکنندگان در لیگ منتشر میگردد.
دریافت
عنوان: بازی NIM
حجم: 212 کیلوبایت
توضیحات: سوال چالشی بازی NIM با بکارگیری عملگر باقیمانده
پاسخ تیم برنده
دریافت
عنوان: بارکد نمونههای خون
حجم: 199 کیلوبایت
توضیحات: سوال چالشی تشخیص صحت بارکد خونی با بررسی شروط
پاسخ تیم برنده
دریافت
عنوان: یافتن عدد در یک بازه با بیشترین عدد اول
حجم: 258 کیلوبایت
توضیحات: سوال چالشی یافتن عددی در یک بازه مشخص که دارای بیشترین اعداد اول در ساختار آن است
def code(inp): num = inp.split(",") # جدا سازی ورودی m = int(num[0]) - int(num[1]) # دریافت تعداد چوبهایی که روی زمین هستند if m % 4 == 0: # بررسی اینکه آیا تعداد چوبها به چهار بخشپذیر است یا نه return "NOK" return m % 4 # نشان میدهد که چند چوب باید برداریم تا به عدد چهار برسیم و برنده شویم
import re # استفاده از ماژول "Regular Expression" برای فیلتر کردن رشته def check_valid_barcode(bar_code): # تابع برای اعمال شرط ها # الگو برای برقراری شرط ها که به متود "match" داده می شود pattern = r"^\*[A-Z0-9.-]+\*$" if re.match(pattern, bar_code) and len(bar_code) <= 22: # "if" برای پیدا کردن بارکد های درست return "OK" return "NOK" # خواندن فایل ها از "input.txt" و نوشتن خروجی های تابع در "output.txt"
// تابعی برای یافتن تمامی اعداد اول تا عدد مشخصشده با روش غربال اراتوستن func sieveOEratosthenes(num int) []int { arr := []int{} for i := 2; i <= num; i++ { // بررسی تمامی اعداد از ۲ تا عدد مشخصشده first := false // Log(n)*n برای حفظ پیچیدگی کد تا اون عدد مورد نظر شمارش میشه for j := 2; j < i; j++ { // بررسی مقسومعلیههای عدد i برای تشخیص اول بودن // بررسی اینکه آیا i بر j بخشپذیر است یا نه if i%j == 0 { first = true } } // اگر عدد اول باشد، به آرایه اضافه میشود if !first { arr = append(arr, i) } } return arr } func code(num int) int { // دریافت لیست اعداد اول تا num one := sieveOEratosthenes(num) // آرایهای برای ذخیره عددی که بیشترین مقسومعلیههای اول را دارد ou := [2]int{0, 0} // بررسی تمام اعداد تا num for i := 2; i <= num; i++ { count := 0 // بررسی شمارش تعداد مقسومعلیههای اول هر عدد for _, v := range one { // بررسی میشود که آیا عدد i بر عدد اول v بخشپذیر است و v از i کوچکتر است if i > v && i%v == 0 { count++ } } // اگر تعداد مقسومعلیههای اول از مقدار ذخیرهشده بیشتر باشد، مقدار جدید جایگزین میشود if count > ou[1] { ou[0] = i ou[1] = count } } return ou[0] }
دیدگاهها
هیچ نظری هنوز ثبت نشده است.