কম্পিউটার টিউটোরিয়াল

৪ ও ৭ ডিজিট দিয়ে ন্যূনতম লাকি নম্বর (নির্দিষ্ট সম) C++-তে


সমস্যা বিবরণ

লাকি নম্বর হলো সেই পজিটিভ ইন্টিজার যাদের ডেসিমেল রিপ্রেজেন্টেশন শুধু ৪ এবং ৭ ডিজিট ধারণ করে। কাজ হলো যেন ডিজিটগুলোর সম n হয় এমন ন্যূনতম লাকি নম্বর বের করা।

উদাহরণ

sum = 22 হলে লাকি নম্বর 4477 কারণ 4 + 4 + 7 + 7 = 22।

অ্যালগরিদম

1. যদি sum ৪-এর গুণিতক হয়, তবে ফলাফলে শুধু ৪ থাকবে।
2. যদি sum ৭-এর গুণিতক হয়, তবে ফলাফলে শুধু ৭ থাকবে।
3. যদি sum ৪ বা ৭-এর গুণিতক না হয়, তবে যেকোনো একটাকে বিয়োগ করুন যতক্ষণ না অন্যটির গুণিতক হয়।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
void luckyNumber(int sum) {
    int a, b;
    a = b = 0;
    while (sum > 0) {
        if (sum % 7 == 0) {
            ++b;
            sum = sum - 7;
        } else if (sum % 4 == 0) {
            ++a;
            sum = sum - 4;
        } else {
            ++a;
            sum = sum - 4;
        }
    }
    cout << "Answer = ";
    if (sum < 0) {
        cout << "-1\n" << endl;
        return;
    }
    for (int i = 0; i < a; ++i) {
        cout << "4";
    }
    for (int i = 0; i < b; ++i) {
        cout << "7";
    }
    cout << endl;
}
int main() {
    int sum = 22;
    luckyNumber(sum);
    return 0;
}

উপরের প্রোগ্রাম কম্পাইল ও এক্সিকিউট করলে নিচের আউটপুট জেনারেট হবে

আউটপুট

Answer = 4477

  1. C++ ব্যবহার করে যোগফল n করার জন্য ক্ষমতার পদের ন্যূনতম সংখ্যা বের করা

  2. C++ ব্যবহার করে এমন একটি সংখ্যা x বের করা যাতে x এবং তার ডিজিটের যোগফল n-র সমান হয়

  3. দেওয়া সংখ্যা n-এর জন্য x + x-এর অঙ্কের যোগফল = n এমন x খুঁজে বের করা C++-এ

  4. C++-এ দেওয়া সংখ্যার ডিজিটগুলোর যোগফল বের করা