打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
算法21(求1+2+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句)

不用if/while等操作实现

解法:1:

求1+2+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句

题目比较变态。起初不愿意多想,只知道模板的发现是由于某人发现在编译打出的错误信息计算出了值,于是才有后面的故事。第一想法的静态模板编译递归计算。

后来看到一个比较好的,是用表达式作为防御性编程——作为递归的条件(无判断),比较巧妙,于是sharing一下。

#include <stdio.h>
int sum(int n)
{
    int tmp = 0;
    (n)&&(tmp = sum(n-1));
    return n+tmp;
}
int main()
{
    printf("%d\n",sum(10));
    return 0;
 
解法2:
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
算法学习暴力枚举
LeetCode之Sum of Two Integers
【Go语言入门100题】013 计算阶乘和 (10 分) Go语言|Golang
选择排序
最大子矩阵问题
学生各门课程成绩统计SQL语句大全
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服