递归函数求和

时间:2016-11-23 23:42:00

标签: c recursion

我有一个递归函数,我称之为%macro program1(start,end,cond); proc summary data = data1 nway missing; where &start. < month < &end. ; %if %length(&cond) %then %do; where also &cond.; %end; class month_inc; var var1 var2; output out =summ_data1 sum=; run; %mend; 。如果满足特定条件,我再次调用该函数。如果没有,我想在变量%program1(start = '01Jan2013'd ,end = '01Jan2016'd ,cond = state = 'XXX') 中添加一个数字。

在我看来,它不应该是什么。有人可以看看这个:

acc

我试着尽可能地简化它。 a是一个变量。 double acc(v) { double a = 0; for(int q=0; q<v; q++) { if(bf(q) < 1) { if(ef() == 0) { a += cf(); } else { a += df(); } } else { return a += acc(v); } } return a; } vbf()cf()是返回整数值的函数。现在我希望每次在整个递归过程中满足特定条件时ef()递增。我的代码是我想要的吗?我现在还没有看到它。

1 个答案:

答案 0 :(得分:1)

你的问题是在递归函数中定义了a。如果要计算递归内的事件,请在acc()之外声明。