मेरे Precalc शिक्षक की अपनी एक पसंदीदा समस्या है जिसे उन्होंने बनाया (या अधिक संभावना है कि xkcd से प्रेरित चुराया है ) जिसमें यूरिनल्स की एक पंक्ति शामिल है । "चेकमेट" एक ऐसी स्थिति है जिसमें प्रत्येक मूत्रालय पहले से ही कब्जा कर लिया गया है या उनके बगल में एक मूत्रालय है। उदाहरण के लिए, एक व्यक्ति एक है अगर है, तोn
X
X-X--X
चेकमेट माना जाता है। ध्यान दें कि एक व्यक्ति पहले से ही कब्जे वाले मूत्रालय के बगल में एक मूत्रालय पर कब्जा नहीं कर सकता है।
कार्य
आपके प्रोग्राम के माध्यम से एक नंबर लगेगा stdin
, कमांड लाइन आर्ग्स, या एक फ़ंक्शन तर्क। आपका प्रोग्राम तब प्रिंट आउट करेगा या उन तरीकों की संख्या लौटाएगा जो चेकमेट यूरिनल की इनपुट संख्या के साथ हो सकते हैं।
उदाहरण
0 -> 1
(शह और मात के रूप में अशक्त मामले में गिना जाता है)
1 -> 1
( X
)
2 -> 2
( X-
या -X
)
3 -> 2
( X-X
या -X-
)
4 -> 3
( X-X-
, -X-X
, या X--X
)
5 -> 4
( X-X-X
, X--X-
, -X-X-
, या -X--X
)
6 -> 5
( X-X-X-
, X--X-X
, X-X--X
, -X--X-
या -X-X-X
)
7 -> 7
( X-X-X-X
, X--X-X-
, -X-X--X
, -X--X-X
, X-X--X-
, X--X--X
या -X-X-X-
)
8 -> 9
( -X--X--X
, -X--X-X-
, -X-X--X-
, -X-X-X-X
, X--X--X-
, X--X-X-X
, X-X--X-X
, X-X-X--X
, X-X-X-X-
)
...
स्कोरिंग
बाइट्स में सबसे छोटा कार्यक्रम जीत जाता है।
''
। यह तथ्यात्मक और क्रमपरिवर्तन के साथ समान है, 0! = 1, क्योंकि 0 आइटम की व्यवस्था करने के लिए बिल्कुल 1 तरीका है।