1+3+5+...+(2n-1) = n(1+2n-1)/2 = n^2
十年的南澳网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。网络营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整南澳建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“南澳网站设计”,“南澳网站推广”以来,每个客户项目都认真落实执行。
1^2+2^2+3^2+n^2 = n(n+1)(2n+1)/6
所以编程实现的话如下:
#include "stdio.h"
int main ()
{
int n,ret;
printf("please input a integer n:");
scanf("%d",n);
while(n 0)
{
ret = n*(n+1)*(2*n+1)/6;
printf("result : %d\n",ret);
printf("please input a integer n:");
scanf("%d",n);
}
return 0;
}
首先你所求的数列是一个公差为1的二级等差数列,如下:
所求数列:1 2 4 7 11……
二级数列: 1 2 3 4……
因此解题的方法也就很明确了,第一步就是先求出二级数列,第二步就可以求出目标数列,最后一步把目标数列各项加起来就得到正确结果了。
C代码如下,代码可以求数列的前n项之和,n的值由自己设定,要求10项就键盘输入10就ok了!(n=100,这个值可以自己改,修改数组定义处的值就ok)
#include "stdio.h"
void main()
{
int a[100],b[100];
int i,n,sum=0;
a[0]=1;
printf("Please input How many numbers you need to summation?\n");
scanf("%d",n);
for(i=0;in-1;i++) //长度为n-1的公差为1的数列b
{
b[i]=i+1;
}
for(i=0;in-1;i++) //求长度为n的目标数列a
{
a[i+1]=a[i]+b[i];
}
printf("The array is:\n"); //输出目标数列a
for(i=0;in;i++)
{
printf("%d ",a[i]);
}
printf("\n");
for(i=0;in;i++) //求数列前n项和
{
sum+=a[i];
}
printf("The summation result is:\n%d\n",sum);
}
代码文本:
#include "stdio.h"
void fun(int n,int i){
if(i=n+n-1){
printf("%d",(i=n ? i : n+n-i));
fun(n,i+1);
}
return;
}
int main(int argc,char *argv[]){
int n;
printf("Enter n(int 0n10)...\nn=");
if(scanf("%d",n)==1 n0 n10){
printf("Item%d is ",n);
fun(n,1);
putchar('\n');
}
else
puts("Input error, exit...");
return 0;
}