JZ47 求1+2+3+...+n****

题目描述

求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。

这道题考的是发散思维

除了用公式(n+1)*n/2,无外乎循环和递归两种思路。由于已经明确限制for和while的使用,循环已经不能再用了。递归函数也需要用if语句或者条件判断语句来判断是继续递归下去还是终止递归,但题目不允许使用这两种语句了

剑指offer上给了四种方法
(1)构造函数
【围绕循环做文章】先定义一个类型,接着创建n个该类型的实例,那么这个类型的构造函数将确定会被调用n次;我们可以将与累加相关的代码放到构造函数里

(2)虚函数
【围绕递归做文章】定义两个函数,一个函数充当递归函数的角色,另一个函数处理终止递归的情况;需要在两个函数里二选一(很容易想到布尔变量,比如true(1)的时候调用第一个函数)

如果感兴趣再看吧,太复杂了!

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-21 19:05
面试官_我太想进步了:混学生会的,难怪简历这么水
点赞 评论 收藏
分享
牛客717484937号:双飞硕没实习挺要命的
点赞 评论 收藏
分享
11-18 15:57
门头沟学院 Java
最终归宿是测开:这个重邮的大佬在重邮很有名的,他就喜欢打92的脸,越有人质疑他,他越觉得爽😂
点赞 评论 收藏
分享
昨天 09:08
裁应届生,一分钱补偿没有,离职了还脑控你,跟踪你,定位你,丁东服务是搞系每一个人
牛客吹哨人:建议细说...哨哥晚点统一更新到黑名单:不要重蹈覆辙!25届毁意向毁约裁员黑名单https://www.nowcoder.com/discuss/1317104
叮咚买菜稳定性 10人发布 投递叮咚买菜等公司10个岗位 >
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务