जो कोई भी निम्न स्तर के कोड अनुकूलन में मध्यम रूप से होता है, वह ब्रांचिंग की गड़बड़ियों के बारे में जानता है, इसे लागू किया जाए जैसे कि बयान, लूप या चयन-बयान एक शाखा के गलत होने की संभावना एक भयानक घड़ी बर्बाद करने वाली चीज है।
सरल अंकगणित से सरल समस्याओं को काफी बेहतर तरीके से हल किया जा सकता है, तो चलिए ऐसा करते हैं।
निम्नलिखित समस्याओं के लिए सभी चर 32 बिट अहस्ताक्षरित पूर्णांक हैं और केवल अनुमत कोड ही सादा सेट स्टेटमेंट है जिसमें केवल निम्नलिखित ऑपरेटर शामिल हैं:
+ addition
- subtraction
* multiplication
/ integer division, rounds down, division by 0 not allowed
% modulo
& binary and
| binary or
^ binary exclusive or
>> bitshift right
<< bitshift left
Logic operators, return 1 if the expression is true and 0 if it is false.
== equal
!= not equal
< less than
<= less than or equal
> greater than
>= greater than or equal
Set operator
=
हर लाइन में एक चर संचालक, एक अभिव्यक्ति के बाद एक चर पहचानकर्ता शामिल होना चाहिए।
एक अभिव्यक्ति में अतिरिक्त सेट ऑपरेटर नहीं हो सकते हैं, लेकिन चर पहचानकर्ता, शाब्दिक संख्या और कोष्ठक हो सकते हैं।
गोल्फ स्कोर केवल ऑपरेटरों की संख्या की गणना करेगा।
उदाहरण:
myvar = ( ( ( foo + 5 ) * bar ) % 7 ) == 3
5 ऑपरेटरों का स्कोर है।
एक समाधान में कई चर शामिल हो सकते हैं जैसा कि लेखक फिट देखता है।
चर जिन्हें सेट नहीं किया गया है, उनका मूल्य है 0
।
ओवरफ्लो और underflow अनुमति दी है, सभी ऋणात्मक संख्याओं underflow, इसलिए 3 - 5
है 4294967294
भी एक बड़ा बयान के भाग के रूप।
कार्य 1: मैक्स
दो मान, A
और B
, गुंजाइश में मौजूद हैं, RESULT
जब प्रोग्राम समाप्त होता है , तो चर में उन मानों में से सबसे बड़ा होता है।
टास्क 2: मेडियन
तीन मान और A
, B
और C
, दायरे में मौजूद हैं, RESULT
जब प्रोग्राम समाप्त होता है , तो चर में उन मानों का माध्य होता है।
कार्य 3: वर्गमूल
एक मान, A
स्कोप में मौजूद होता है, जब प्रोग्राम समाप्त हो जाता है, तो RESULT
वेरिएबल को वर्गाकार मूल में A
, राउंड डाउन होता है।
प्रश्नों में से केवल एक या दो का उत्तर पोस्ट करना ठीक है, आप में से कुछ के लिए केवल वैध समाधान ढूंढना एक चुनौती होगी।
0xFFFF_FFFF_FFFF_FFFF ^ x
और 0 - x
। मैं कैसे भूल सकता था?
!
लिए भी बहुत तुच्छ नहीं है x == 0
:।
Boole[a-b]
?
-
लेकिन~
अच्छा हो सकता है (भले ही मुझे नहीं पता कि इसके लिए क्या हो)।