原题是:求 1 + 2 + 3 + ... + n
要求:不能用乘除法,不能用if,while, switch,case, 不能用(a < b ? a : b)三目运算符
关键点:利用&&运算的短路性质以及递归
关键代码:
int fun3(int n, int *sum)
{
int ret;
ret = n&&fun3(n-1, sum);
return (*sum += n);
}
如果大家有好的思路欢迎交流!一起学习一起进步!
本文介绍了一种在编程中实现1+2+3+...+n求和的方法,该方法不使用乘除法、if、while等控制结构,并且避免了常见的三目运算符。通过巧妙运用递归和逻辑与(&&;)运算符的短路特性,实现了简洁而高效的求和逻辑。
原题是:求 1 + 2 + 3 + ... + n
要求:不能用乘除法,不能用if,while, switch,case, 不能用(a < b ? a : b)三目运算符
关键点:利用&&运算的短路性质以及递归
关键代码:
int fun3(int n, int *sum)
{
int ret;
ret = n&&fun3(n-1, sum);
return (*sum += n);
}
如果大家有好的思路欢迎交流!一起学习一起进步!
442
341

被折叠的 条评论
为什么被折叠?