यह जांचने के लिए कि क्या दशमलव संख्या 7 से विभाज्य है:
अंतिम अंक मिटाएं। इसे 2 से गुणा करें और जो बचा है उससे घटाएं। यदि परिणाम 7 से विभाज्य है, तो मूल संख्या 7 से विभाज्य है।
(यह भी जैसे वर्णित यहाँ )
यह नियम मैनुअल डिविजिबिलिटी चेक के लिए अच्छा है। उदाहरण के लिए:
क्या 2016 7 से विभाज्य है?
6*2
201 से घटाना ; हम 189 प्राप्त करते हैं। क्या यह 7 से विभाज्य है? इसे जांचने के लिए, आइए फिर से नियम लागू करें।
9*2
18 से घटाना ; हमें 0. इसलिए, 2016 7 से विभाज्य है।
इस चुनौती में, आपको इस नियम को तब तक लागू करना चाहिए जब तक कि विभाज्यता की स्थिति स्पष्ट न हो , अर्थात संख्या 70 से अधिक न हो (हालाँकि, विवरण के लिए नीचे देखें)। एक समारोह या एक पूर्ण कार्यक्रम बनाओ।
इनपुट : एक सकारात्मक पूर्णांक; आपके कोड को 32767 तक इनपुट का समर्थन करना चाहिए (मनमाने ढंग से सटीक पूर्णांक का समर्थन करना एक बोनस है; नीचे देखें)।
आउटपुट : एक पूर्णांक (संभवतः नकारात्मक), 70 से अधिक नहीं, यह विभाजन-दर -7 नियम को शून्य या अधिक बार लागू करने का एक परिणाम है।
परीक्षण के मामलों:
Input Output Alternative output
1 1
10 10 1
100 10 1
13 13 -5
42 42 0
2016 0
9 9
99 -9
9999 -3
12345 3
32767 28 -14
---------- Values below are only relevant for the bonus
700168844221 70 7
36893488147419103232 32 -1
231584178474632390847141970017375815706539969331281128078915168015826259279872 8
जहां दो संभावित आउटपुट निर्दिष्ट हैं, या तो परिणाम सही है: दूसरा एक नियम को एक बार और लागू करने से मेल खाता है। नियम को एक-अंकों की संख्या पर लागू करने के लिए मना किया जाता है: यदि आप अंक को मिटाते हैं, तो कुछ भी नहीं (0 नहीं) बचा है।
बोनस : यदि आपका एल्गोरिथ्म
- मनमाना-सटीक पूर्णांक का समर्थन करता है
- इनपुट पर केवल एक पास करता है
- अंतरिक्ष जटिलता है
o(n)
(यानी की तुलना में कमO(n)
); तथा - समय जटिलता है
O(n)
,
n
दशमलव अंकों की संख्या कहां है:
अपने कोड के बाइट काउंट से 50% घटाएं।
असली बोनस :
इसके अलावा, यदि आपका एल्गोरिदम सामान्य दिशा में इनपुट को पढ़ता है, तो सबसे महत्वपूर्ण अंक से शुरू करके, एक बार फिर 50% घटाएं - आपका स्कोर आपके बाइट काउंट का 25% है (यह संभव प्रतीत होता है, लेकिन मैं बिल्कुल निश्चित नहीं हूं)।
1000000000000000000001
।
long long
या कुछ समान प्रकार का निर्माण किया गया है?