किसी भी संख्या को कुछ पूर्ण वर्ग संख्याओं के योग द्वारा दर्शाया जा सकता है। इस समस्या में, हमें यह ज्ञात करना होगा कि दिए गए मान को दर्शाने के लिए कितने पूर्ण वर्ग पदों की आवश्यकता है।
मान लीजिए 94 है, तो 95 =9 2 + 3 2 + 2 2 + 1 2 . तो उत्तर होगा 4
विचार 1 से शुरू करना है, हम पूर्ण वर्ग संख्या प्राप्त करने के लिए आगे बढ़ते हैं। जब मान 1 से 3 हो, तो उन्हें केवल 1s के साथ बनाया जाना चाहिए।
इनपुट और आउटपुट
<पूर्व>इनपुट:एक पूर्णांक संख्या। कहें 63.आउटपुट:चुकता शब्दों की संख्या। यहाँ उत्तर है 4.63 =7 2 + 3 2 + 2 2 + 1एल्गोरिदम
minSquareTerms(value)
इनपुट: दिया गया मान.
आउटपुट: दिए गए मान तक पहुंचने के लिए वर्ग शब्दों की न्यूनतम संख्या।
आकार मान + 1 वर्गसूची [0]:=0, वर्गसूची [1]:=1, वर्गसूची [2]:=2, वर्गसूची [3]:=3 की श्रेणी 4 से n के लिए सरणी परिभाषित करना प्रारंभ करें , sqList [i] करें:=i x के लिए:=1 से i, अस्थायी करें:=x ^ 2 यदि अस्थायी> i, तो लूप को तोड़ें अन्यथा sqList [i]:=न्यूनतम sqList [i] और (1+ sqList[i-temp]) किया गया वापसी sqList[n]End
उदाहरण
#includeनेमस्पेस का उपयोग करना std;int min(int x, int y) {रिटर्न (x i) टूट जाता है; अन्य वर्गसूची [i] =मिनट (वर्गसूची [i], 1 + वर्गसूची [itemp]); } } वापसी वर्गसूची [एन];} इंट मेन () {इंट एन; cout <<"एक नंबर दर्ज करें:"; सिनेमा>> एन; cout <<"न्यूनतम चुकता अवधि की आवश्यकता:" < आउटपुट
नंबर दर्ज करें:63 न्यूनतम चुकता अवधि आवश्यक:4