调用函数计算一个正整数到1的和,并把和显示再主函数上

#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];

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值