黑马程序员技术交流社区

标题: 简单的求100以内平方和问题 [打印本页]

作者: 倦鸟识山    时间: 2015-10-25 09:21
标题: 简单的求100以内平方和问题
public class SubExam
{
        public static void main(String[] args)
        {
                int s=0;
                //将100以内的平方值相加
                for(int x=1;x<=100;x++)
                {
                        s=s+x^2;
                }
                method(s);
        }
        public static void method(Object obj)
        {
                System.out.println(obj);
        }
}


输出结果是:5050
   正确的结果应该是338350。希望大家可以帮我找到问题所在,谢谢!



作者: WosLovesLife    时间: 2015-10-25 10:21
  1. public class MathDemo {
  2.         public long sums(){
  3.                 long sum = 0;//所有乘积的和
  4.                 long product = 0;//单个乘积
  5.                
  6.                 for (int i = 0; i <= 100; i++) {
  7.                         sum+=product;//总数加等于单个乘积
  8.                         product = 0;//成绩被总数收纳后归零
  9.                         for (int j = i; j <=100 ; j++) {
  10.                                 product += j * i;
  11.                         }
  12.                         System.out.println(product);//可以看到每个加数的所有乘积
  13.                 }
  14.                 return sum;
  15.         }
  16.         
  17.         public static void main(String[] args) {
  18.                 MathDemo md = new MathDemo();
  19.                 System.out.println(md.sums());//总数是12910425
  20.         }
  21. }
复制代码

作者: WosLovesLife    时间: 2015-10-25 10:24
我不知道是不是我没有理解对你的意思。看我上面代码,我是计算了,例如说0*0,0*1~~一直到0*100;然后1*1(因为1乘0已经乘过了),1*2~~一直乘到100;最后是99*99,99*100,100*100; 但是结果和你说的338350不一样。
作者: 倦鸟识山    时间: 2015-10-25 10:43
WosLovesLife 发表于 2015-10-25 10:24
我不知道是不是我没有理解对你的意思。看我上面代码,我是计算了,例如说0*0,0*1~~一直到0*100;然后1*1( ...

求的是平方和 就是 1*1+2*2+3*3+......+99*99+100*100
作者: 倦鸟识山    时间: 2015-10-25 10:48
倦鸟识山 发表于 2015-10-25 10:43
求的是平方和 就是 1*1+2*2+3*3+......+99*99+100*100

其实把s = s + x^2改成s =s + x*x 就可以得到正确答案,我就是好奇为什么x^2不能得到平方值。
作者: ppaapc    时间: 2015-10-25 11:22
代码能写成x^2??
作者: 叶子和大人    时间: 2015-10-25 11:44
^在代码中是什么。。。
作者: dai2686779    时间: 2015-10-25 11:50
6666666666666666666666
作者: WosLovesLife    时间: 2015-10-25 12:22
对啊,就像楼上几位兄弟说的。 ^肯定是不能表示幂啊。 ^是异或啊
作者: 倦鸟识山    时间: 2015-10-25 15:13
WosLovesLife 发表于 2015-10-25 12:22
对啊,就像楼上几位兄弟说的。 ^肯定是不能表示幂啊。 ^是异或啊

那要是这样的话我就懂了 谢谢




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