特殊的求和:1+2+3+...+n
来源:互联网 发布:手机文字识别软件 编辑:程序博客网 时间:2024/05/22 09:42
问题:求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
分析:1+2+3+...+n是一个等差数列,用等差数列求和公式,n*(a1+an)/2,但题目中要求不能用乘除,此方法不可行;遍历?题目中不让用循环,但是我们可以用递归来代替循环,写一个函数,每次传参数为n-1,当n为1时递归终止。但是题目中不让用if语句,那么我们就无法轻易判断递归的结束了,怎么办呢?整数中那个数是比较特殊的呢,我们会想到0,累和加上0值不变。那么我们让递归进行到n为0的时候,还记得&&和||操作的短路特征吗?只要前面符合,就不会在执行后面的语句了。利用这个特性我们写出语句 n>0 && 递归操作,代码如下:
public class Main {public static int sum(int n) { int res = n; boolean a = (res> 0 && ( n+= sum(n-1)) > 0); return n; }public static void main(String[] args) {Scanner cin = new Scanner(System.in);while(cin.hasNext()){System.out.println(sum(cin.nextInt()));}}}
0 0
- 特殊的求和:1+2+3+...+n
- 求和1+2+3+...N
- 好玩的 1 + 2 + 3 + ... + n 求和问题
- 序列求和,求1+2+3+.....+n的值
- [剑指offer]求和1+2+3+....n
- 特殊数列的求和
- 1!+2!+...n!求和程序
- 1!+2!+...n!求和程序
- 1+2+3+..+n 特殊累加
- 特殊方式求求1+2+3+...+n
- CodeVS4730 特殊等式-1@2@3@...@(N-1)=N
- 递归2 用递归求和。1+2+3+4+....n.
- 用递归求和。1+2+3+4+....n.
- Problem J: 用递归求和。1+2+3+4+....n.
- 用c语言实现1+2+3+...+n求和
- 用链表解决特殊的3n+1问题
- 特殊方法求1~n的和
- 特殊方法求1~n的和
- 蓝牙技术(BlueTooth)——(一)
- c++ 学习笔记初篇
- 【Linux】Linux常用指令
- Android三种点击事件实现
- LearnOpenGL学习笔记7:摄像机
- 特殊的求和:1+2+3+...+n
- leetcode之242. Valid Anagram(C++解法)
- 机房收费之报表
- <自己动手写CPU>章七至章九总结
- FOJ 1006 Dead Fraction
- pillow处理图像
- 100248A
- 认识Maven及其依赖
- HDU1284-钱币兑换问题