কম্পিউটার

রিকার্সিভ ফাংশন ব্যবহার করে x পাওয়ার n এর মান তৈরি করতে সি প্রোগ্রাম


সমস্যা

x n এর মান গণনা করুন , যেখানে x এবং n উভয়ই রানটাইমে ব্যবহারকারীর দেওয়া ইনপুট

সমাধান

C প্রোগ্রামিং ল্যাঙ্গুয়েজে রিকার্সিভ ফাংশন ব্যবহার করে x পাওয়ার n এর মান তৈরি করার সমাধান হল নিম্নরূপ −

x n খোঁজার যুক্তি নিচে উল্লেখ করা হয়েছে -

//Calling function:
Xpow=power(x,n);
//Called function:
if (n==1)
   return(x);
else if ( n%2 == 0)
   return (pow(power(x,n/2),2)); /*if n is even*/
else
   return (x*power(x, n-1));

অ্যালগরিদম

পুনরাবৃত্ত ফাংশন ব্যবহার করে x পাওয়ার n এর মান তৈরি করতে নীচে দেওয়া একটি অ্যালগরিদম পড়ুন।

ধাপ 1 - লং int ভেরিয়েবল পড়ুন

ধাপ 2 - ফাংশন প্রোটোটাইপ ঘোষণা করুন

ধাপ 3 - কল ফাংশন

Xpown=power(x,n) goto step 5

পদক্ষেপ 4৷ - প্রিন্ট xpown

ধাপ 5 - ফাংশন বলা হয়

ধাপ 5.1 − যদি (n==1)

ধাপ 5.1.1 - রিটার্ন(x)

ধাপ 5.2 − অন্যথায় যদি (n%2 ==0)

ধাপ 5.2.1 − প্রত্যাবর্তন (pow(power(x,n/2),2)); /*যদি n জোড় হয়*/

ধাপ 5.3 - অন্যথায়

ধাপ 5.3.1 − রিটার্ন (x*শক্তি (x, n-1)); /* যদি n বিজোড় হয়*/

প্রোগ্রাম

পুনরাবৃত্ত ফাংশন ব্যবহার করে x পাওয়ার n এর মান তৈরি করতে নিচে C প্রোগ্রাম দেওয়া হল −

#include <stdio.h>
#include <math.h>
void main(){
   long int x, n, xpown;
   long int power(int x, int n);
   printf("Enter the values of X and N: \n");
   scanf("%ld %ld", &x, &n);
   xpown = power (x, n);
   printf("X to the power N = %ld\n",xpown);
}
/*Recursive function to computer the X to power N*/
long int power(int x, int n){
   if (n==1)
      return(x);
   else if ( n%2 == 0)
      return (pow(power(x,n/2),2)); /*if n is even*/
   else
      return (x*power(x, n-1)); /* if n is odd*/
}

আউটপুট

যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -

Enter the values of X and N:
5 4
X to the power N = 625

  1. জাভাস্ক্রিপ্ট ব্যবহার করে iota(i) এর nth পাওয়ারের মান রিটার্ন করা হচ্ছে

  2. সি প্রোগ্রাম ফাংশনে পয়েন্টার ব্যবহার করে যোগফল এবং পার্থক্য খুঁজে বের করতে

  3. পুনরাবৃত্ত ফাংশন ব্যবহার করে সংখ্যার GCD খুঁজে বের করতে C প্রোগ্রাম

  4. পাইথনে 2 এর পাওয়ারের মান বের করার প্রোগ্রাম