回 帖 发 新 帖 刷新版面

主题:编程求1到N的偶数之和,感谢

[color=FF0000][size=1]编程求1到N的偶数之和,非常感谢[/size][/color]

回复列表 (共7个回复)

沙发

dim sum,i,N
sum=0
input n
for i=2 to N step 2
sum=sum+i
next i
print sum
end

板凳

cls
input n
for i=1 to n 
    if i mod 2 =0 then s=s+i
next i
print s
end


3 楼

cls 
input n 
a = 0
for i = 1 to n
a = a + i *2
next i 
print "a =";a
end

4 楼

新手,加油啊

5 楼

在这个问题上(都看不见人烟了,还不吭吭声还真感觉不到自己活着的证据了)
应该想想更多的一些办法和途径:

题目上可知:某一区间段的偶数,是一个等差数列,
在初中学梯形面积和三角形的时候有一个公式,就是一个等差数列求和的公式:
=(上底+下底)x高/2

区间:  [1,N]
首先可以确定上底是2,(第一个偶数)

那么下底是多少?
有两种情况:
  A.N是奇数,那么下底就是N-1
  B.N是偶数,那么N就是下底

高如何确定?
可以假设一下,
假如N是4,那么只有两个偶数,高就是2
假如N是7,于是便有三个偶数,高就是3
因为连续的自然数当中,偶数占一半,
偶数的个数肯定就是N的一半,而且是从1开始的,
区别就是偶数与奇数个数相等,还是奇数多一个了,
依此类推,其实高=N\2

三个参数都有了,但有了计算过程的初步模型了:
if N mod 2 =1 then    '[color=ff00ff]当N是奇数的时候[/color]
   S=(2+N-1)*((N-1)/2)/2  '[color=ff00ff]套用梯形面积公式(等差数列求和)[/color]
else                  '[color=ff00ff]当N是偶数的时候[/color]
   S=(2+N)*(N/2)/2
endif
综合一下,我们做成函数的形式(平时解决问题要有这种想法)
function S2S(N)
    S2S=[color=0000ff]((2+N)\2)*(N\2)   '[color=ff00ff]把处理做进式子里,得出的结果是相同的[/color]
end function

6 楼

MOZ你是哪个大学毕业的?

7 楼

我连高中都没上.

我来回复

您尚未登录,请登录后再回复。点此登录或注册