Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> प्रोग्रामिंग

1 से n तक सभी संख्याओं में अंकों का योग 계산 करें


इस समस्या में, हमें रेंज 1 से n तक सभी संख्याओं के अंकों का योग ढूंढना है। उदाहरण के लिए 54 के अंकों का योग 5 + 4 = 9 है, इसी तरह, हमें सभी संख्याएं और उनके अंकों का योग ढूंढना है।

हम जानते हैं कि 10d - 1 संख्याएं उत्पन्न की जा सकती हैं, जिनके अंकों की संख्या d है। उन सभी d अंकों की संख्याओं का योग खोजने के लिए, हम एक पुनरावर्ती सूत्र का उपयोग कर सकते हैं।

sum(10d- 1)=sum(10d-1- 1)*10+45*(10d-1)

इनपुट और आउटपुट

इनपुट: यह एल्गोरिदम रेंज की ऊपरी सीमा लेता है, मान लें यह 20 है। आउटपुट: 1 से n तक सभी संख्याओं में अंकों का योग। यहाँ परिणाम 102 है

एल्गोरिदम

digitSumInRange(n)

इनपुट: रेंज की ऊपरी सीमा।

आउटपुट: रेंज (1-n) में सभी संख्याओं के लिए अंकों का योग।

शुरू     यदि n < 10, तो       वापस करें n(n+1)/2     digit := संख्या में अंकों की संख्या     d := digit – 1     आकार digit का place सरणी परिभाषित करें     place[0] := 0     place[1] := 45     i := 2 से d तक, करें       place[i] := place[i-1]*10 + 45 * ceiling(10^(i-1))       power := ceiling(10^d)       msd := n/power       res := msd*place[d] + (msd*(msd-1)/2)*power +         msd*(1+n mod power) + digitSumInRange(n mod power)       res वापस करें     किया अंत

उदाहरण

#include<iostream> #include<cmath> using namespace std; int digitSumInRange(int n) {     if (n<10)       return n*(n+1)/2;       //जब एक अंक की संख्या हो तो सूत्र से योग खोजें     int digit = log10(n)+1;       //संख्या में अंकों की संख्या       int d = digit-1;       //अंक गणना को 1 से घटाएं         int *place = new int[d+1];       //1 से 10^place[i] तक योग संग्रहीत करने के लिए सरणी बनाएं     place[0] = 0;     place[1] = 45;     for (int i=2; i<=d; i++)       place[i] = place[i-1]*10 + 45*ceil(pow(10,i-1));     int power = ceil(pow(10, d));       //10 की घात की गणना     int msd = n/power;       //सबसे महत्वपूर्ण अंक खोजें     return msd*place[d] + (msd*(msd-1)/2)*power +       msd*(1+n%power) + digitSumInRange(n%power);       //पुनरावर्ती रूप से योग खोजें } int main() {     int n;     cout << "Enter upper limit of the range: ";     cin >> n;     cout << "Sum of digits in range (1 to " << n << ") is: " << digitSumInRange(n); }

आउटपुट

Enter upper limit of the range: 20 Sum of digits in range (1 to 20) is: 102

  1. - C++ में ऐरे के अंकों से बनी दो संख्याओं का न्यूनतम योग

    विवरण एक ऐरे दिया गया है जिसमें 0 से 9 तक के मान वाले अंक हैं। कार्य ऐरे के अंकों से बनी दो संख्याओं का न्यूनतम संभव योग ढूंढना है। कृपया ध्यान दें कि हमें दिए गए ऐरे के सभी अंकों का उपयोग करना है उदाहरण यदि इनपुट ऐरे है {7, 5, 1, 3, 2, 4} तो न्यूनतम योग 382 है, क्योंकि हम दो संख्या 135 और 247 बना

  1. - जावा प्रोग्राम से 1 से N तक सभी अभाज्य संख्याएं (Prime Numbers) प्रदर्शित करना

    इस लेख में हम समझेंगे कि जावा में 1 से N तक सभी अभाज्य संख्याएं कैसे प्रदर्शित की जाती हैं। 1 से अनंत तक की सभी संभावित धनात्मक संख्याओं को प्राकृतिक संख्याएं कहा जाता है। अभाज्य संख्याएं विशेष संख्याएं हैं जिनके केवल दो गुणनखंड होते हैं: 1 और स्वयं, और किसी अन्य संख्या से विभाजित नहीं हो सकतीं। एक

  1. - Python - संख्याओं से पिछले K अंक निकालना

    जब संख्याओं से पिछले K अंक निकालना आवश्यक हो, तो एक साधारण सूची समझ, मॉड्यूलो ऑपरेटर और ** ऑपरेटर का उपयोग किया जाता है। नीचे इसका प्रदर्शन दिया गया है: उदाहरण my_list = [51645, 24567, 36743, 89452, 2122] print(The list is :) print(my_list) K = 3 print(The value of K is ) print(K) my_result = [el