int power(int base,int exp)

{
    int x;
    if ( exp!=1 )
    {
      return  (base* power(base,exp-1));
    }
}

এইখানে ইনপুট হিসেবে exp যদি ১ দেওয়া হয় সেক্ষেত্রে ফাংশনটি কী রিটার্ন করবে??

asked 10 Jul '16, 19:07

Shamim_Ahmed's gravatar image

Shamim_Ahmed
336

edited 10 Jul '16, 19:12


int power(int base, int exp){
    int x;

    if(exp != 1){
        return (base * power(base, exp - 1));
    }
}

কোডের এই অংশবিশেষ দেখে মনে হচ্ছে এটা কোন একটা সংখ্যার পাওয়ার(ঘাত) বের করার একটা রিকার্সিভ ফাংশন। ধরে নিচ্ছি রিকার্শন কিভাবে কাজ করে আপনি জানে। জানা না থাকলে এখান থেকে শিখে নিতে পারেন। এই ফাংশনে যদি exp এর ভ্যালু ১ দেয়া হয় তবে কিছুই রিটার্ন করবে না। কারণ যদি exp এর ভ্যালু ১ না হয় তবে কি রিটার্ন করবে সেটা বলা আছে:

if(exp != 1){
    return (base * power(base, exp - 1));
}

কিন্তু exp এর ভ্যালু ১ হলে কি রিটার্ন করবে সেটা বলা নেই। কোন সংখ্যার ঘাত ১ হলে যেহেতু ঐ সংখ্যাটাই পাওয়া যায় তাই base টাই রিটার্ন করা উচিৎ। সেক্ষেত্রে সঠিক কোডটা হবে:

int power(int base, int exp){
    int x;

    if(exp == 1){
        return base;
    }

    return (base * power(base, exp - 1))
}
permanent link

answered 10 Jul '16, 19:53

Ashfaqur%20Rahman's gravatar image

Ashfaqur Rahman
78310

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×7
×5

question asked: 10 Jul '16, 19:07

question was seen: 579 times

last updated: 10 Jul '16, 19:53