不使用乘除、if、else、while、for, 计算1+2+...+n

本文介绍了一种在不使用循环及条件控制语句的情况下计算1到n累加和的方法。利用Java语言特性实现短路效果,通过递归调用完成求和任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚刚在做笔试题的时候碰到了这个问题,这里做个记录。
下面是题目的大致描述:

  • 要求:计算1+2+…+n

  • 条件:

    1. 不能使用乘除操作符
    2. 不能使用while,for等循环控制语句
    3. 不能使用if,else,三目运算符等条件控制语句

一种(符合该题目给定的格式的)解法是:

public int add(int n){
    int sum=0;
    boolean flag = false;
    //begin code

    //  这里使用&&来达到短路的效果,这样在n==0时,后半部分被短路,从而使得跳出递归,此时正好加到从n加到0
    //  后半部分的比较操作纯粹是为了满足Java语法,没有实际含义
    flag = (n != 0) && (sum = add(n-1) + n)==1;
    return sum;
    //end code
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值