黑马程序员技术交流社区

标题: 分享一个1+2+3+......+100的小程序 [打印本页]

作者: cxdzh    时间: 2014-11-9 21:30
标题: 分享一个1+2+3+......+100的小程序
  1.         //以前自己写的渣渣,学了一个多月了,从来没想过这样有什么不好.
  2.         public static int add(int n){
  3.                 int sum=0;
  4.                 for(int i=0;i<=n;i++){
  5.                         sum=sum+i;
  6.                 }
  7.                 return sum;
  8.         }


  9.         //今天看数据结构与算法的书提到高斯算法,才发现小学就学会的东西,为啥想不到运用..惭愧!
  10.         public static int add1(int n){
  11.                 int sum=0;
  12.                 sum=(1+n)*n/2;
  13.                 return sum;
  14.         }
复制代码



作者: eric_quan    时间: 2014-11-9 21:33
抢沙发。。。。。。。。
作者: hanxing    时间: 2014-11-9 21:56
因为你在用计算机思维解决问题,
作者: DamonZh    时间: 2014-11-9 22:11
第一种比较通用,可以算任意数的加法,第二种如果出现奇数/2的话就出错了。不过楼主的思维方式值得学习
作者: 桃华月禅    时间: 2014-11-9 22:26
DamonZh 发表于 2014-11-9 22:11
第一种比较通用,可以算任意数的加法,第二种如果出现奇数/2的话就出错了。不过楼主的思维方式值得学习 ...

完全忘记了奇数问题...这么一想确实,我基础太差了》。。
作者: kakasa    时间: 2014-11-9 23:06
DamonZh 发表于 2014-11-9 22:11
第一种比较通用,可以算任意数的加法,第二种如果出现奇数/2的话就出错了。不过楼主的思维方式值得学习 ...

(n+1)*n 怎么可能会变成奇数。。。
作者: huoxy    时间: 2014-11-10 09:43
算法确实能让代码显得高大上,但是代码的阅读性和理解性就差一点,毕老师在视屏中建议过:在完成同样功能的情况下,且对性能没什么要求时,建议用简单明了的第一种。
作者: 高志鹏1    时间: 2014-11-10 11:18
等差数列求和
作者: 嘿~~    时间: 2014-11-10 11:29
  1. public class Test {

  2.         public static void main(String[] args) {
  3.                 // TODO Auto-generated method stub
  4.                 int temp = 0;
  5.                 System.out.println(getSum(1,0));
  6.         }
  7.         private static int getSum(int num,int temp){
  8.                 if(num<=100)
  9.                         temp = getSum(num+1,temp) + num;
  10.                 return temp;
  11.         }
  12. }
复制代码

作者: DamonZh    时间: 2014-11-10 17:57
kakasa 发表于 2014-11-9 23:06
(n+1)*n 怎么可能会变成奇数。。。

唔,是我2啦:Q




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