pavarin

Wed 5 Mar 2008 05:45:02
Wed 5 Mar 2008 05:45:02
#include<stdio.h>
#include<conio.h>
int re(int n);
int main(){
int a=0;
a=re(5);
printf("%d",a);
getch();
return 0;
}
int re(int n){
int i=1;
if(n<=1)
return 1;
else
printf(" Round = %d\n\n",n);
return 2*re(n-1)+1;
}
ผลลัพท์ คือ 31
โจทย์กำหนดมาให้ส่งค่า 5 ให้กับฟังชัน re เมื่อเข้าสู่ฟังก์ชันแล้วมันจะเปรียบเทียบค่า โดยมันจะไปตกที่ else แล้วจะมีการ returnค่า แต่การ return นี้กลับไปยังฟังก์ชัน re อีก
ผมไม่เข้าใจว่า return 2*re(n-1)+1; มันกระทำกันก่อน แล้วค่อยส่งค่าไป ? ผมไม่เข้าใจว่าการรีเทรินของมันทำงานยังไง ถึงได้ผลลัพท์ออกมาครับ
webmaster

Wed 5 Mar 2008 11:25:19
Wed 5 Mar 2008 11:25:19
ใช่ครับถ้าใช้งานแบบนี้จะต้องรอค่าจาก function ก่อนถึงจะคำนวนได้แล้วถึงจะ return ค่าออกมาครับ

















