【Offer】[64] 【求1+2+...+n】
2024-09-01 06:35:41
题目描述
求1+2+...+n,要求不能使用乘除法、for、 while if else. switch、
case等关键字及条件判断语句( A?B:C)。
思路分析
利用逻辑运算符的短路特性:
- 对于A && B,如果A为假,那么就不执行B了;而如果A为真,就会执行B。
- 对于A || B,如果A为真,那么就会不执行B了;而如果A为假,就会执行B。
- 我们可以使用递归来代替循环,用逻辑运算符&&或者||来代替判断语句。
测试用例
- 功能测试:输入5、10求1+2+..+5和1+2+...+10。
- 边界值测试:输入0和1。
Java代码
public class Offer064 {
public static void main(String[] args) {
test1();
test2();
test3();
}
public static int Sum(int n) {
return Solution1(n);
}
private static int Solution1(int n) {
int sum = n;
boolean flag = (n>1) && ((sum+=Solution1(n-1))>0);
// boolean flag = (n==1) || ((sum+=Solution1(n-1))>0);
return sum;
}
private static void test1() {
System.out.println(Sum(100));
}
private static void test2() {
}
private static void test3() {
}
}
代码链接
最新文章
- Watir-WebDriver关于交互式等待方法,告别一味sleep时代
- asp.net web api CORS
- Java--剑指offer(7)
- C语言 百炼成钢9
- SpringMvc入门三----控制器
- POJ 1700 cross river (数学模拟)
- [转]iOS 应用程序的生命周期
- ROS_Kinetic_24 使用catkin_create_qt_pkg快速创建qt-ros功能包
- redist命令操作(三)--集合Set,有序集合ZSet
- 基于MATLAB搭建的DDS模型
- MySQL表结构的优化和设计
- 如何使用Scrapy框架实现网络爬虫
- office2007每次打开都要配置文件,怎么取消配置(可行)
- The Little Prince-12/03
- leetcode998
- ICS 组件 for lazarus 1.0.12
- 转:导出csv文件数字会自动变科学计数法的解决方法
- 在Kali Linux上编译Windows EXP
- 在MFC中改变控件的TAB顺序
- L3-015. 球队“食物链”(dfs)
热门文章
- (13)ASP.NET Core 中的选项模式(Options)
- 初试kafka消息队列中间件一 (只适合初学者哈)
- RocketMq中网络通信之服务端
- Linux curl 常用示例
- Linux文件及目录管理
- (三)c#Winform自定义控件-有图标的按钮
- Mac 安装 homebrew 流程 以及 停在 Updating Homebrew等 常见错误解决方法
- 7.19 包 logging模块 hashlib模块 openpyxl模块 深浅拷贝
- Arranging Your Team HDU - 3720 【DFS】
- 打包一沓开源的 C/C++ 包管理工具送给你!