首页 > 代码库 > 递归实现数组求和
递归实现数组求和
#include<stdio.h> int sum(int* a, int n) { return (0 == n)?0:(sum(a,n-1) + a[n-1]); } void sum1(int* a, int n,int& s) { if(0 == n) return; else { s = s + a[n-1]; sum1(a,n-1,s); } } ///用return方案的话,就是先可以递归最底层,然后再从最底层开始计算回来,从下层向上层传数据 ///如果使用形参的话,在递归的过程中能够就可以计算,从上层向下层传递数据 int main() { int a[] = {1, 2, 3, 4}; int n = sizeof(a)/sizeof(a[0]); ///用这个技巧可以得到一个[]类型的长度,记住,无论任何类型 //printf("%d",sum(a,n)); int s = 0; sum1(a,n,s); printf("%d",s); }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。