从一道C语言练习题看思维误区:1平方+2平方+3平方+4平方+...+n平方

标签: 人次2019-07-15 12:52

我无意中在C上音符任一排演。:求 1平方+2平方+3平方+4平方+…n平方 ?

我以为其中的一部分。,想起不难,界限两个效能,那时转学主效能,认真思考的行动方向如次:

. 界限二次效能,接纳限制因素,那时回到他的平方的。
. 界限任一求“1平方+2平方+3平方+4平方+...n平方”的效能,接纳限制因素,那时运用效能1从1到n求平方,扩大。
. 在主效能中,SCNF接纳用户输入的数目,那时转学效能2,printf输入。

指定遗传密码如次:

 #include 
 
 int 四边形(X)
     return x*x;
 }
 
 int 积聚(N)
     int i=1;
     int s=0;
 
     由于(i=1;i<=n;i++){
         s += square(i);
     }
 
     return s;
 }
 
 int 主(空)
     int n;
     int s;
 
     printf(请 input one number: 
");
     scanf(%d,&n);
 
     s = accumulate(n);
     printf("%d
",s);
     return (0);
 }

写完指定遗传密码后,smartl,一对有答案的发现是不一样的。,才猛然想到这应该有公式吧?高中时肯定学过这东西?于是我也想到了高斯求解1+2+3+…n=n(n 1)的经典情况,那时我用这样来设置。,找不到路,得不到树或花草结果。于是,在谷歌搜索中,有些人对我也有异样的成绩,网友阿巴达对此成绩深思熟虑,并且s3=1^2 2^2 3^2是派生的…+n^2=n(n+1)(2n+1)/6,参见 。

同时,我还发现了任一微积分求导解的行动方向。,但我不明白。,大学真的在瓦伊,真是太可惜了。

公式已经推导暴露了,指定遗传密码很容易编写。,没什么好说的,修正后的指定遗传密码如次:

 #include 
 
 // s = 1^2+2^2+3^2+...+n^2 = n*(n+1)*(2*n+1)/6
 
 int 主(空)
     int n;
     int s;
 
     printf(请 input one number: 
");
     scanf(%d,&n);
 
     s = n*(n+1)*(2*n+1)/6;
     printf("%d
",s);
     return (0);
 }

轻蔑的拒绝或不承认树或花草结果也可以经过第一种办法获得,但显然,次货种办法是最复杂和最无效的,更适合作者的最小量。中学生交谈=mathematics成绩,看了半晌,我解不暴露。,长叹,大约积年的念书,它真的是白色物质的吗?


喃喃自语:

什么认真思考一件事,那时做出正当的的选择。,这是我盼望的。;从这样范例中,可以音符,异样的成绩,运用同卵双胞的器(C假释,认真思考方法特色,选择也完整特色。我怀胎的是总有一天,你可以改变立场雾,音符成绩的实质,处理他完全相同的从高处眺望到的景色他。