剑指offer_发散思维---求1+2+3+...+n

简介: 剑指offer_发散思维---求1+2+3+...+n

##题目描述

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

##解题思路

用&&运算符,满足第一个条件才执行第二个条件和递归这两种结合来解题

##代码实现

/**
 * 
 */
package 发散思维;
/**
 * <p>
 * Title:Sum
 * </p>
 * <p>
 * Description:
 * </p>
 * 
 * @author 田茂林
 * @data 2017年8月25日 下午5:57:19
 */
public class Sum {
  public static int IntSum(int n) {
     int sum = n;
     @SuppressWarnings("unused")
    boolean flag= (n>0)&&(sum+=IntSum(n-1))>0;  //满足条件递归求和
     return sum;
      }
  public static void main(String[] args) {
    System.out.println(IntSum(10));
  }
}


相关文章
|
8月前
|
人工智能 C++
指针习题笔记(较难,可用于思维锻炼)
指针习题笔记(较难,可用于思维锻炼)
40 4
|
8月前
|
C语言
青蛙跳台阶:我如何得知它是一道斐波那契数列题?——应用题破题“三板斧”(一)
这篇内容介绍了C语言学习中的经典例题——斐波那契数列,强调了解题思路的重要性。斐波那契数列是一个数列,其中每个数是前两个数的和。文章指出,很多类似题目,如“青蛙跳台阶”,实质上都在考察斐波那契数列的实现。文中提供了斐波那契数列的定义、代码实现和递归与非递归的思路,并鼓励读者从问题中分析出解题模型,而非直接套用已知方法。此外,还提及了一道相关题目“矩形覆盖问题”,以供进一步练习。
70 0
|
8月前
|
机器学习/深度学习 算法 测试技术
青蛙跳台阶:我如何得知它是一道斐波那契数列题?——应用题破题“三板斧”(二)
这篇内容是关于解题策略的,主要介绍了在面对应用题时可以采用的“三板斧”方法:举例、模拟和找规律。通过一个走楼梯的例子详细解释了这三个步骤如何运用。首先,举例将抽象问题具体化,比如走5级台阶有几种方式。其次,通过模拟不同情况,例如思考走每一步的可能,发现递归或循环的模式。最后,通过找规律归纳出一般性的解决方案,这里发现走台阶问题与斐波那契数列相关。文章还提到了一个拓展案例——矩形覆盖问题,同样可以用类似的方法分析。总的来说,文章强调了解题过程中理解和转化问题的重要性,以及通过训练提升这方面能力。
67 0
|
PHP
BugKu 矛盾 解题思路
BugKu 矛盾 解题思路
88 0
|
8月前
|
安全 Java 索引
如何克服Leetcode做题的困境
如何克服Leetcode做题的困境
56 0
|
人工智能 算法 C++
【每日算法Day 88】超越妹妹教你如何做这道排序题
【每日算法Day 88】超越妹妹教你如何做这道排序题
|
存储 移动开发 算法
C++/PTA 关于深度优先搜索和逆序对的题应该不会很难吧这件事
背景知识 深度优先搜索与 DFS 序 深度优先搜索算法(DFS)是一种用于遍历或搜索树或图的算法。以下伪代码描述了在树 T 上进行深度优先搜索的过程
129 0
|
算法
【每日挠头算法题】Acwing 756. 蛇形矩阵 —— 巧妙解法
【每日挠头算法题】Acwing 756. 蛇形矩阵 —— 巧妙解法
153 0
【每日挠头算法题】Acwing 756. 蛇形矩阵 —— 巧妙解法
|
人工智能 算法
AcWing算法学习第三节---高精度问题.
AcWing算法学习第三节---高精度问题.
|
算法
这样给面试官解释约瑟夫环问题的几种巧妙解法,面试官满意的笑了
约瑟夫环问题是算法中相当经典的一个问题,其问题理解是相当容易的,并且问题描述有非常多的版本,并且约瑟夫环问题还有很多变形,这篇约瑟夫问题的讲解,一定可以带你理解通通!
160 0
这样给面试官解释约瑟夫环问题的几种巧妙解法,面试官满意的笑了