C语言数据结构

C语言数据结构


呼如林
浏览 751回答 1
1回答

jeck猫

一、递归的写法:123456789101112131415#include&nbsp;<stdio.h>int&nbsp;g(int&nbsp;m,int&nbsp;n);int&nbsp;main(){&nbsp;&nbsp;&nbsp;&nbsp;printf("g(3,5)的结果:%d\n",g(3,5));&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;}int&nbsp;g(int&nbsp;m,int&nbsp;n){&nbsp;&nbsp;&nbsp;&nbsp;if(m==0&nbsp;&&&nbsp;n>=0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if(m>0&nbsp;&&&nbsp;n>=0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;g(m-1,2*n)+n;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;}递归执行过程:最后往上依次返回值,5返回0,所以4返回0+20,所以3返回20+10,所以2返回30+5,所以结果就是35。二、不使用递归的写法:1234567891011121314151617#include&nbsp;<stdio.h>int&nbsp;g(int&nbsp;m,int&nbsp;n);int&nbsp;main(){&nbsp;&nbsp;&nbsp;&nbsp;printf("g(3,5)的结果:%d\n",g(3,5));&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;}int&nbsp;g(int&nbsp;m,int&nbsp;n){&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;sum=0;&nbsp;&nbsp;&nbsp;&nbsp;while(m--)&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum=sum+n;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n=2*n;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;sum;}&nbsp;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

数据结构