কম্পিউটার

প্রদত্ত পুনরাবৃত্ত সম্পর্কের nম পদ খুঁজে বের করতে সি প্রোগ্রাম


ধরুন আমাদের তিনটি সংখ্যা a, b, c এবং একটি মান n আছে। আমরা একটি পুনরাবৃত্তি সূত্র S(n) −

অনুসরণ করি
  • S(1) একটি ফেরত দেয়
  • S(2) ফেরত দেয় b
  • S(3) ফেরত দেয় c
  • S(n) সকল n> 3 এর জন্য S(n-1) + S(n-2) + S(n-3) প্রদান করে।

এই পুনরাবৃত্তি অনুসরণ করে আমাদের nম পদ খুঁজে বের করতে হবে।

সুতরাং, যদি ইনপুট হয় a =5, b =2, c =3, n =6, তাহলে আউটপুট হবে 28 কারণ −

  • S(6) =S(5) + S(4) + S(3)
  • S(5) =S(4) + S(3) + S(2)
  • S(4) =S(3) + S(2) + S(1) =3 + 2 + 5 =10
  • তাই এখন S(5) =10 + 3 + 2 =15
  • এবং S(6) =15 + 10 + 3 =28

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

একটি ফাংশন solve() সংজ্ঞায়িত করুন, এটি a, b, c, n,

লাগবে
  • যদি n 1 এর মত হয়, তাহলে:
    • একটি ফেরত দিন
  • যদি n 2 এর মত হয়, তাহলে:
    • ফেরত b
  • যদি n 3 এর মত হয়, তাহলে:
    • রিটার্ন c
  • রিটার্ন সলভ((a, b, c, n - 1) + solve(a, b, c, n - 2) + solve(a, b, c, n - 3))

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

#include <stdio.h>
int solve(int a, int b, int c, int n){
    if(n == 1)
        return a;
    if(n == 2)
        return b;
    if(n == 3)
        return c;
    return solve(a, b, c, n-1) + solve(a, b, c, n-2) + solve(a, b, c, n-3);
}
int main(){
    int a = 5, b = 2, c = 3, n = 6;
    int res = solve(a, b, c, n);
    printf("%d", res);
}

ইনপুট

5, 2, 3, 6

আউটপুট

28

  1. পাইথনে nম মেয়াদ পর্যন্ত ফিবোনাচি সিরিজের ফলাফল খোঁজার প্রোগ্রাম

  2. পাইথনে nম ফিবোনাচি শব্দ খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে একটি প্রদত্ত ম্যাট্রিক্স থেকে nতম ক্ষুদ্রতম সংখ্যা বের করার প্রোগ্রাম

  4. পাইথনে একটি প্রদত্ত পুনরাবৃত্তি সম্পর্কের nম পদ খুঁজুন