如题所述
代码逻辑:利用对称,迭代一半的数字求和。由起点数字2,确认n为偶数则中间值为(2+n)/2,n为奇数中间值为0。迭代结束加上中间值(如果中间值为0)。
#include<stdio.h>int main( )
{
int n,mid,i,imax,sum,s2;
while(1)
{
printf("\n输入一个整数:");
sum=0;
scanf("%d",&n);
s2=2+n;
if(n%2==0)//如果是奇数个数字
{
mid=s2/2;
imax=mid-1;
}
else
{
mid=0;
imax=s2/2;
}
printf("2到%d之间的偶数和:",n);
for(i=2;i<=imax;i++)
{
if(i%2==0)
{
sum=sum+i;
printf("%d+",i);
}
if((s2-i)%2==0)
{
sum=sum+s2-i;
printf("%d+",s2-i);
}
}
if(mid%2==0)
{
sum=sum+mid;
printf("%d=",mid);
}
else
printf("=");
printf("%d",sum);
}
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2018-05-07
#include<stdio.h>
int main()
{int i,n,s=0;
scanf("%d",&n);
for(i=2;i<=n;i+=2)
s+=i;
printf("%d\n",s);
return 0;
}
int main()
{int i,n,s=0;
scanf("%d",&n);
for(i=2;i<=n;i+=2)
s+=i;
printf("%d\n",s);
return 0;
}