#include<stdio.h>
int sum(int num);//调用函数别忘了先声明再使用
int main ()
{
int num;
printf ("请输入一个正整数:");
scanf ("%d",&num);
printf ("%d\n",sum(num));
return 0;
}
int sum(int num) //这里的int类型必须写,没写会传送错误的sum和num数据类型
{
if (num==1)
{
return 1;//把递归函数不能再分解的分支情况写出来,保证函数能结束
}
return sum(num-1)+num;//可以存在两个return根据需要返回所需要的值,
} //sum(num-1)+num这里是根据问题分解成1+ ...+(num-1)最后加上num两步法得出的思路
数字1 1 2 3 5 8 13 21...
编号0 1 2 3 4 5 6 7.......
编写一个程序,输入编号能找到对应编号所对应的数字
第一种方法
#include<stdio.h>
int sun(int num);
int main ()
{
printf ("请输入一个数字:\n");
scanf("%d",&num);
printf ("%d \n",sum(num));
return 0;
}
int sum(int num)
{
if (num<=1)
{
return 1;
}
return sum[num-2] + sum[num-1];
}
#include<stdio.h>
int sun(int num);
int main ()
{
printf ("请输入一个数字:\n");
scanf("%d",&num);
printf ("%d \n",sum(num));
return 0;
}
int sum(int num)
{
static int arr[50]={0};(局部静态变量,延长生命周期)
if (num<=1)
{
return 1;
}
if ((num-1)!=0)
{
arr[num-1]=sum(num-1);
}
if ((num-2)!=0)
{
arr[num-2]=sum(num-2);
}
return arr[num-2] + arr[num-1];
}