33,311
社区成员
发帖
与我相关
我的任务
分享
if(k<=n);
sub(a,n/2,2*k);
#include <stdio.h>
void sub(int* a, int n, int k)
{
if(k > n)
return;
sub(a, n / 2, 2 * k);
*a += k;
}
int main(int argc, char* argv[])
{
int x = 0;
sub(&x, 8, 1);
printf("%d\n", x);
return 0;
}
main()
{int x=0;//初始化x为0
sub(&x,8,1);//执行sub函数
printf("%d\n",x);//打印x值
}
sub(int *a,int n,int k)
{if(k<=n);//
sub(a,n/2,2*k);//递归执行 k值分别 1,2,4
*a+=k;//在递归条件结束时 1+2+4 = 7
}