আপনি আপনার কোডটিতে প্রচুর দীর্ঘ, বিরক্তিকর শর্তসাপেক্ষে শেষ করেছেন:
if flag == 1:
while have != needed:
if type == 7:
এগুলি তাদের আরও স্নেহযোগ্য <3
শর্তাবলীর প্রতিরূপে রূপান্তরিত হতে পারে :
if abs(flag - 1) + 2 <3:
while 3 - abs(have - needed) <3:
if 2 + abs(type - 7) <3:
কার্য
আপনার কাজটি শর্তসাপেক্ষে নেওয়া এবং এটি শর্তাবলী করা <3
। একমাত্র ব্যবধান যে বিষয়টি গুরুত্বপূর্ণ তা হ'ল <
এবং এর মধ্যে কোনওটিই নেই 3
।
Conditionals কে দুই পারেন seperated এক্সপ্রেশন হতে হবে ==
, !=
, >
, <
, >=
বা <=
।
এক্সপ্রেশনগুলিতে কেবল সংযোজন, বিয়োগ, আনারি নেগেটিশন ( -something
) থাকবে, যেখানে প্রতিটি ভেরিয়েবল বা সংখ্যার আগে একটি +
বা তার -
আগে রয়েছে (প্রথমটি বাদে যার কিছুই নেই বা এর -
আগে নেই )।
নম্বরগুলি হবে [0-9]+
, এবং ভেরিয়েবলগুলি হবে [a-z]+
। যদি উত্তরটি ব্যবহারের প্রয়োজন হয় |x|
(এর নিখুঁত মান x
) তবে abs()
ফাংশনটি ব্যবহার করুন । আপনি ধরে নিতে পারেন যে সমস্ত ভেরিয়েবলগুলি পূর্ণসংখ্যা এবং ইনপুটটিতে সমস্ত সংখ্যার ধ্রুবক <1000 হয়।
আউটপুট নেই না এটা সহজ ফর্ম মধ্যে হতে হবে। এটির মতো উপরের মতো শর্তাধীন হওয়ার দরকার নেই, অর্থাত এটি কেবল দুটি অভিব্যক্তি, একটি শর্তসাপেক্ষ চিহ্ন দ্বারা পৃথক, তবে এটি abs
বৈধ এক্সপ্রেশনটি সংযুক্ত করে ফাংশনটিও ব্যবহার করতে পারে , এবং তারপরে এটি বৈধতার ক্ষেত্রে বৈকল্পিকের মতো কাজ করে।
যদি ইনপুটটির কোনও ভেরিয়েবলের কোনও মানের আউটপুট না থাকে তবে এমন শর্তটি আউটপুট করুন যা সর্বদা মিথ্যা, তবে এখনও শর্তাবলী <3
।
চ্যালেঞ্জের অংশটি কীভাবে এটি করতে হবে তা নির্ধারণ করছে, তবে have != needed
উপরের পদক্ষেপগুলি এখানে :
have != needed
have - needed != 0
abs(have - needed) > 0
-abs(have - needed) < 0
3 - abs(have - needed) <3
স্কোরিং
এটি কোড-গল্ফ, তাই বাইটে, সংক্ষিপ্ততম বৈধ কোড।
পরীক্ষার মামলা
(দ্রষ্টব্য, এই আউটপুটগুলি কেবলমাত্র আউটপুট নয়, তবে আমি সেগুলি সহজ করার চেষ্টা করেছি))
flag == 1
abs(flag - 1) + 2 <3
have != needed
3 - abs(have - needed) <3
type == 7
2 + abs(type - 7) <3
x > y
3 - x + y <3
x + 5 < -y
x + 8 + y <3
x + 6 <= y
x + 8 - y <3
-x >= y + 3
x + y + 5 <3
x < x
3 <3
# Unsimplified; both would be valid outputs.
x - x + 3 <3