求 1 + 2 + … + n 但是不能使用判断,循环,分支,条件判断语句以及乘除运算

利用反射实现递归:目标就是构建一个递归出口

public class _Q46<T> {public int terminator(int n){return 0;}public int sum(int n) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException{List<Boolean> list = new ArrayList<>();list.add(false);list.add(true);// reflecting all the public member methods of the class or interface represented by this Class object// The elements in the array returned are not sorted and are not in any particular order.Method methods[] = this.getClass().getMethods();int index = list.indexOf(n == 0); // 仅当n==0的时候执行terminator()方法return n + (int)methods[index].invoke(this, (--n));}}

测试代码:

    public class _Q46Test extends TestCase {_Q46<?> sum = new _Q46();public void test() throws IllegalAccessException, IllegalArgumentException, InvocationTargetException{System.out.println(sum.sum(100));}}

【剑指offer-Java版】46求 1 + 2 + 3 + ... + n相关推荐

  1. 剑指offer java版 test3—从尾到头打印链表

    标题:剑指offer java版 test3-从尾到头打印链表 题目:输入一个链表,按链表从尾到头的顺序返回一个ArrayList. 解答:知识不够全面,用ArrayList做的 但是看到大佬们还可以 ...

  2. 剑指offer java版 test42—找出和为S的两个数,左右夹逼法(双指针法)

    前言:受上一题的启发,这题自己也编出来了.在碰到这种有序数列的时候,经常会用到双指针法,一个指左边,一个指右边,然后依照规则移动,增加或缩小范围.很实用. 题目: 输入一个递增排序的数组和一个数字S, ...

  3. 剑指offer java版(三)

    二叉搜索树的后序遍历 问题描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 解题思路 对于后序遍历来说, ...

  4. 剑指offer java版(一)

    二维数组中的查找 问题描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数 ...

  5. 剑指offer没有java版吗_剑指Offer(Java版) 持续更新中

    面试题2 单例(之前有整理,略) 面试题3 二维数组中的查找 public boolean find(int target, int [][] array) { boolean found = fal ...

  6. 剑指Offer第二版Java代码实现

    剑指Offer第二版Java代码实现 A.单例模式 面试题 2:实现Singleton模式 B.面试需要的基础知识 面试题 3:数组中重复的数字 面试题 4:二维数组的查找 面试题 5:替换空格 面试 ...

  7. 剑指offer——面试题46:求1+2+...+n

    剑指offer--面试题46:求1+2+-+n 题目描述 求1+2+3+-+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C). 个 ...

  8. 剑指offer第二版答案详细版(带详细解题思路)

    1.滑动窗口的最大值(剑指offer原59题) 解题思路:其实是一个队列的问题,用一个队列去维护当前窗口中的所有元素:首先将超出窗口中的队头元素先删掉,然后将新的元素插入当前窗口中,插入时要判断新插入 ...

  9. 剑指offer最新版_剑指Offer——Java版本(持续更新)

    0 前言 邻近校招,算法要命!!! 本文为研究剑指Offer过程中的笔记,整理出主要思路以及Java版本题解,以便记忆和复习. 参考整理来自<剑指Offer 第二版>. 特别注意,对每道题 ...

  10. 剑指offer第二版(leetcode)Java题解(不断更新)

    1 数组中的重复数字 题目 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次.请找出数组中任意一 ...

最新文章

  1. Python 处理server返回gzip内容
  2. 使用WeUI+JS 的label包含input触发两次的问题
  3. python tkinter教程 博客园_python tkinter教程-事件绑定
  4. jakarta ee_关于Jakarta EE软件包名称更改的思考
  5. 解决:Chrome 插件安装时提示 程序包无效:“CRX_HEADER_INVALID“
  6. 深度学习语义分割理论与实战指南.pdf
  7. 推荐系统和搜索引擎的关系
  8. 递归下降实现LL(1)文法分析C语言与Python实现
  9. 别人连不上_手机能连上wifi,笔记本电脑确连不上,显示无internet,安全,该怎么办?...
  10. xxl-job架构源码解析
  11. CDA的考试体系与人才能力模型
  12. 常用编程语言介绍及各语言特点
  13. 五、eclipse如何创建一个ftl(FreeMarker)的文件和设置ftl文件的显示风格(ftl文件高亮显示)
  14. JS match() 方法 使用
  15. 计算机桌面ie图标无法删除,解决桌面IE图标或者我的电脑无法删除
  16. 免费开放可转盲文字库 阿里健康大药房呼吁关注视障群体用药安全
  17. 如何使用网线连接树莓派和电脑
  18. Spring三大核心思想
  19. 万维网支持用户资源上行至服务器,万维网服务器
  20. Element表格出现闪动问题

热门文章

  1. 6.QML动画——状态与过渡
  2. 噪声与平滑滤波(MATLAB)
  3. grdraw显示区域 lisp_lisp函数按功能分类
  4. excel工具栏隐藏了怎么办_真正的EXCEL隐藏技巧来啦!这5个你都会吗?
  5. 成语json_推荐一份中文数据,来试试汉字、词语、成语、歇后语在线检索
  6. Confluence 6 Windows 中以服务方式自动重启的原因
  7. Redis工具类的封装
  8. LinkExtractor
  9. QingStor 对象存储服务正式商用
  10. 无忧技术带您预览DFS(分布式文件系统)管理控制台