建网站服务器系统,盐城企业网站制作,宣传软文推广,东莞市网站建设公司哪家好剑指 Offer 64. 求 1 2 … n#xff08;java解题#xff09;1. 题目2. 解题思路3. 数据类型功能函数总结4. java代码1. 题目
求 12…n #xff0c;要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句#xff08;A?B:C#xff09;。
示例…
剑指 Offer 64. 求 1 2 … njava解题1. 题目2. 解题思路3. 数据类型功能函数总结4. java代码1. 题目
求 12…n 要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句A?B:C。
示例 1
输入: n 3
输出: 6示例 2
输入: n 9
输出: 45限制
1 n 10000
作者Krahets 链接https://leetcode.cn/leetbook/read/illustration-of-algorithm/9h44cj/ 来源力扣LeetCode 著作权归作者所有。商业转载请联系作者获得授权非商业转载请注明出处。
2. 解题思路
求解这个公式首先的常见想法是使用循环但是for、while禁止使用第二个思路是形成公式12……nn*(n1)/2但是没办法将公式转化为非乘除的形式最后为了“消除循环”考虑使用递归。递归除了需要使用if-else其他方面能够满足要求。 在解题的过程中我一时间没有意识到if-else被禁止因此还是使用传统的递归结构。 但是官方题解显然更进一步使用逻辑表达式消除了if-else结构相当巧妙
boolean xn1 (nsumNums(n-1))0;
return n;
//等价于
if(n1||n0){return 0;
}
else{return nsumNums(n-1);
}3. 数据类型功能函数总结
//无4. java代码
class Solution {public int sumNums(int n) {boolean xn1 (nsumNums(n-1))0;return n;}
}