求1到500的和,最好有源码,*^o^*

解决方案 »

  1.   

    1-500的和,用for循环可以解决,还是有性能上的需求?!!
    我知道了,楼主想散分!我接!
      

  2.   


       int result = 0;
       for(int i=1;i<=500;i++){
           result +=i;
       }
       System.out.println("1到500的和是:"+result);
      

  3.   


    这个 数学好一点的人 就 得意了
    public int sum(int n) {  return n * (n +1) * 0.5
    }
      

  4.   

    有啥要求?(reduce + (range 1 501))List.range(1,501).reduceLeft(_+_);
      

  5.   


    (n*(n+1)) >>> 1;
      

  6.   

    for(int i= 1 ;i<=500 ; i++){
    sum+=i;
    }
    这个倒是没有楼上的方法简介 呵呵 
      

  7.   

    public class T {
    public static void main(String[] args) {
    System.out.println("125250");
    }
    }
      

  8.   

    (n*(n+1)) >>> 1这个好
      

  9.   

    (n*(n+1)) >>> 1有深度 ,呵呵
      

  10.   

       int sum = 0;
       for(int i = 1; i <= 500; i++) {
           result += i;
       }
       System.out.println("1到500的和是:" + sum);
      

  11.   

    public class Sum500 {
    public static void main(String[] args)throws IOException{
    int sum=0;
    for(int i=1;i<=500;i++){
    sum+=i;
    }
    System.out.print("1+2+3+...+500=");
    System.out.println(sum);
    }
    }
      

  12.   

    public class RopeDemo {
    public static void main(String[] args){
    int sum=0;
    for(int i=1;i<=500;i++){
    sum+=i;
    }
    System.out.print("1+2+3+...+500=");
    System.out.println(sum);
    }
    }
      

  13.   

    楼主要出个题考我们?难道你的用意是:加起来的值越界了,用个BigDecimal?
      

  14.   

    static int result = 0;
    public static int recursionMU(int k){
    if(k == 0){
    return result;
    }else{
    result = k +recursionMU(k-1);
    }
    return result;
    }
    参数是250,试了一下结果是31375.不知道对不对呢?
      

  15.   

    public class RopeDemo {
    public static void main(String[] args){
    int sum=0;
    for(int i=1;i<=500;i++){
    sum+=i;
    }
    System.out.print("1+2+3+...+500=");
    System.out.println(sum);
    }
    }
      

  16.   


    public class Test1 { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    int sum=0;
    for(int i=0;i<=500;i++){
    sum+=i;
    }
    System.out.println("1到500的总和是:"+sum);
    }}
      

  17.   


    这个好!
            int n = 500;
            int x = ( n * ( n + 1)) >>> 1;
      

  18.   

    >>> 比较不错。。
      

  19.   

    我只习惯用for.....没想到移位更帅...
      

  20.   

    请教各位下 ">>>" 这是什么意思啊?
      

  21.   

    弱弱的问句 这个是什么意思的 ?(n*(n+1)) >>> 1;
      

  22.   

    我晕,看了好几楼,程序写多了 最基本的数学都忘了??res=n*(n+1)/2
      

  23.   

    这个用位移和for都可以的,有什么问题?
      

  24.   

    楼主是不是考这个?
    防止溢出public class Test { public static void main(String[] args) {
    System.out.println(getSum(50));
    }

    public static int getSum(int n){
    if((n & 1) == n)
    return ((n + 1) >> 1) * n;
    return (n >> 1) * (n + 1);
    }}
      

  25.   

    等差数列求和公式:
    Sn=n(a1+an)/2 或Sn=a1*n+n(n-1)d/2
    这个简单 不用循环
      

  26.   

    1到500的和太没难度了。。我下面这个算法是1到100000的和/*1+2+3+..+100000*/
    public class Add10000 {
    public static void main(String[] args){
    Add10000 zhengshan = new Add10000();
    String sum = "0";

    for(int i=1 ; i<=1000000 ; i++){
    sum = zhengshan.add(sum, i+"");
    }

    //正确的计算结果
    System.out.println("1+2+3+...+100000=" + sum);
    //错误的计算结果
    int s = 0;
    for(int i=0 ; i<=1000000 ; i++){
    s += i;
    }
    System.out.println("1+2+3+...+100000=" + s);
    }

    private String add(String str1, String str2){
    StringBuilder strAddStr = new StringBuilder();//str1,str2相加的结果
    char ch1, ch2;
    int ch1AddCh2 = 0; //零时的2个字符相加的和
    int upValue = 0; //进位

    int i = str1.length()-1;
    int j = str2.length()-1;
    while(i>=0 && j>=0){
    ch1 = str1.charAt(i);
    ch2 = str2.charAt(j);

    ch1AddCh2 = Integer.parseInt(ch1+"") + Integer.parseInt(ch2+"") + upValue;

    if(ch1AddCh2 >= 10){
    upValue = ch1AddCh2/10;
    ch1AddCh2 = ch1AddCh2%10;
    }else{
    upValue = 0;
    }
    strAddStr = strAddStr.append(ch1AddCh2);

    i--;
    j--;
    }


    String strLast = "0";
    if(i >= 0){
    strLast = str1.substring(0, i+1);
    }
    if(j >= 0){
    strLast = str2.substring(0, j+1);
    }
    strLast = Integer.parseInt(strLast) + upValue + "";

    if(!"0".equals(strLast)){
    strAddStr.append(new StringBuilder(strLast).reverse());
    }
    return strAddStr.reverse().toString();
    }
    }
      

  27.   

    public class Sum{
    public static void main(String[] args){
    System.out.println(125250);
    }
    }
      

  28.   

    用for循环就ok了,大众的用法,不过移位真的也很好用,嘿嘿!
      

  29.   

    一个FOR循环 不行吗 ?
      

  30.   

    初学Java,刚看过无符号右移,赞一个~
      

  31.   

    public class Test1 {    /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            int sum=0;
            for(int i=0;i<=500;i++){
                sum+=i;
            }
            System.out.println("1到500的总和是:"+sum);
        }}
      

  32.   

    (m+n)*(m-n+1) >>> 1
      

  33.   

    (n*(n+1)) >>> 1有深度 ,呵呵