黑马程序员技术交流社区

标题: 很有意思的另类java求和问题,公司面试题!非黑马面试题! [打印本页]

作者: zhy934453950    时间: 2015-4-7 14:56
标题: 很有意思的另类java求和问题,公司面试题!非黑马面试题!
需求:计算1到100的和。不能用for、while、do while、loop等语句,只能用条件句if。代码不能超过10行,可以用一切办法。输出每一个累加的结果以及最终结果。



作者: fantacyleo    时间: 2015-4-7 15:18
递归咯。其实不另类。递归是计算机科学中的基本概念和思想
作者: zhy934453950    时间: 2015-4-7 15:35
fantacyleo 发表于 2015-4-7 15:18
递归咯。其实不另类。递归是计算机科学中的基本概念和思想

是吗,额,因为看到没用循环,所以觉得,很神奇
作者: major2015    时间: 2015-4-7 16:29
试了哈,就是这样了
  1. public class Demo1 {

  2.         public static void main(String[] args) {
  3.                 System.out.println(getSum(1,100));
  4.                        
  5.         }
  6.         public        static  int getSum(int start,int end){
  7.                 int sum=0;
  8.                 sum+=start;
  9.                 start++;
  10.                 return start<=end?getSum(start,end)+sum:sum;
  11.                
  12.         }
  13. }
复制代码

作者: tubao1991    时间: 2015-4-7 18:23
我的想法是:public class Test10{  
        public static void main(String[] args){
          System.out.println("计算结果为:"+sum(100));
        }
        public static int sum(int num){
            if(num==1){
                                            return num;
                }else{
                                              return num+sum(num-1);
                }
        }
}

作者: ROFFY    时间: 2015-4-7 19:55
用if递归
作者: major2015    时间: 2015-4-7 21:35
tubao1991 发表于 2015-4-7 18:23
我的想法是:public class Test10{  
        public static void main(String[] args){
          System.out.println(" ...

刚看到是毕老师第20天第07课讲的,代码中有点和老师写的不一样,就是return num,应为return 1。这样清楚些了。mark
作者: thoris    时间: 2015-4-7 22:14
又学到了新东西~
作者: 栗子木头    时间: 2015-4-7 22:54
666666666666666




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2