Funksiya-10#2999

Funksiya-10 (Həll təhlili)

Problemin həllində verilmiş rekursiv funksiyanı həyata keçirmək lazımdır.

Diqqət edin ki, giriş məlumatlarında olan dəyişənlər ardıcıllığı ilə verilsə də, funksiyaya f(m, n) ardıcıllığı ilə ötürülür.

Alqoritmin icrası

Funksiya f-nin rekursiv icrasını təqdim edək.

int f(int m, int n)
{
  if (m == 0) return 1;
  if (m == n) return 1;
  return f(m-1,n-1) + f(m,n-1);
}

Proqramın əsas hissəsi. Giriş məlumatlarını oxuyuruq.

scanf("%d %d",&n,&m);

Nəticəni hesablayıb çıxışa yazırıq.

res = f(m,n);
printf("%d\n",res);

Java tətbiqi

import java.util.*;

public class Main
{
  static int f(int m, int n)
  {
    if (m == 0) return 1;
    if (m == n) return 1;
    return f(m-1,n-1) + f(m,n-1);
  }
    
  public static void main(String[] args)
  {
    Scanner con = new Scanner(System.in);
    int n = con.nextInt();
    int m = con.nextInt();
    
    int res = f(m,n);

    System.out.println(res);
    con.close();
  }
}

Python tətbiqi

Funksiya f-nin rekursiv icrasını təqdim edək.

def f(m, n):
  if m == n or m == 0:
    return 1
  return f(m-1, n-1) + f(m, n - 1)

Proqramın əsas hissəsi. Giriş məlumatlarını oxuyuruq.

a, b = map(int, input().split())

Nəticəni hesablayıb çıxışa yazırıq.

print(f(b, a))