07/02/24 14:12:19
>>101
ちょっと>>98を改造して末尾再帰になるようにしたぞ。
これなら文句あるまい。
#include <stdio.h>
int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int nsum(int data[], int data_num, int acc){
return data_num<=0?acc:nsum(&data[1], data_num-1, *data+acc);
}
int main(void) {
printf("%d\n", nsum(a, 10, 0));
return 0;
}