एक संख्या n और एक मान दिया गया है। हमें सभी n अंकों की संख्याएं ढूंढनी हैं, जहां सभी n अंकों का योग s दिए गए मान के समान है। यहां 0 को अंक नहीं गिना जाता।
संख्या n 1 से 100 की सीमा में होनी चाहिए, और मान 1 से 500 की सीमा में होना चाहिए।
इनपुट और आउटपुट
इनपुट: यह एल्गोरिदम अंकों की संख्या, और योग मान लेता है। मान लें अंक गणना 3 है। और योग 15 है। आउटपुट: उन 3-अंकीय संख्याओं की संख्या प्रदर्शित करें जिनका योग 15 है। परिणाम 69 है। (ऐसी 69 अलग-अलग 3-अंकीय संख्याएं हैं जिनका योग 15 है)
एल्गोरिदम
count(digit, sum)
इनपुट: संख्याओं के अंक, दिया गया मान।
आउटपुट: गिनें कि कितनी संख्याएं हैं।
शुरू यदि digit = 0, तो वापस करें सच जब sum = 0 यदि memTable[digit, sum] खाली नहीं है, तो वापस करें memTable[digit, sum] answer := 0 i := 0 से 9 तक करें यदि sum – i >= 0, तो answer := answer + count(digit – 1, sum - i) किया वापस करें memTable[digit, sum] := answer अंत
numberCount(digit, sum)
इनपुट: संख्या के अंक, दिया गया मान।
आउटपुट: उस प्रकार की संख्या कितनी है।
शुरू memTable परिभाषित करें और सभी स्थान खाली करें res := 0 i := 1 से 9 तक, करें यदि sum – i >= 0, तो res := res + count(digit – 1, sum - i) किया परिणाम वापस करें अंत
उदाहरण
#include<iostream> #define ROW 101 #define COL 501 using namespace std; unsigned long long int memTable[ROW][COL]; unsigned long long int count(int digit, int sum) { if (digit == 0) //0 अंक की संख्या के लिए जांचें कि योग 0 है या नहीं return sum == 0; if (memTable[digit][sum] != -1) //जब उपसमस्या ने परिणाम ढूंढ लिया हो, तो इसे वापस करें return memTable[digit][sum]; unsigned long long int ans = 0; //पहली बार उत्तर को 0 सेट करें for (int i=0; i<10; i++) //प्रत्येक अंक के लिए गिनें और उससे शुरू होने वाली संख्याएं खोजें if (sum-i >= 0) ans += count(digit-1, sum-i); return memTable[digit][sum] = ans; } unsigned long long int numberCount(int digit, int sum) { for(int i = 0; i= 0) result += count(digit-1, sum-i); return result; } int main() { int digit, sum; cout << "Enter digit count: "; cin >> digit; cout << "Enter Sum: "; cin >> sum; cout << "Number of values: " << numberCount(digit, sum); }
आउटपुट
Enter digit count: 3 Enter Sum: 15 Number of values: 69