主题:[讨论]公式"1,2,1,2,3,1,2,3,4..."求n项
593170024
[专家分:500] 发布于 2009-10-26 12:34:00
公式"1,2,1,2,3,1,2,3,4..."求n项
怎么做呢?
回复列表 (共4个回复)
沙发
zihao1231 [专家分:150] 发布于 2009-10-28 22:11:00
很简单!
分析:
12 123 1234 12345……}把这些数分段
1段有2个数
2段有3个数……
假设n在第i段上
那么i之前的段有(首项(也就是2)+末项(也就是i))*(项数(也就是i-1))/2<n
简化之后变成i*i+i<n*2+首项(也就是2)
将<右边的数字开平方后依次试,只要满足条件就行(从大往小)
确定i的值以后,(i*i+i-首项(也就是2))/2
再用n-结果得出n项
程序:
CLS
INPUT N
FOR I = INT(SQR(N*2-2)) TO 1 STEP -1
IF I*I+I < N * 2 + 2 THEN A=(I*I+I-2)/2:EXIT FOR
NEXT I
PRINT N-A
END
板凳
593170024 [专家分:500] 发布于 2009-11-01 22:08:00
就一个input,一个print
不用for
3 楼
593170024 [专家分:500] 发布于 2009-11-01 22:10:00
[quote]很简单!
分析:
12 123 1234 12345……}把这些数分段
1段有2个数
2段有3个数……
假设n在第i段上
那么i之前的段有(首项(也就是2)+末项(也就是i))*(项数(也就是i-1))/2<n
简化之后变成i*i+i<n*2+首项(也就是2)
将<右边的数字开平方后依次试,只要满足条件就行(从大往小)
确定i的值以后,(i*i+i-首项(也就是2))/2
再用n-结果得出n项
程序:
CLS
INPUT N
FOR I = INT(SQR(N*2-2)) TO 1 STEP -1
IF I*I+I < N * 2 + 2 THEN A=(I*I+I-2)/2:EXIT FOR
NEXT I
PRINT N-A
END
[/quote]
你咋这么麻烦?
4 楼
593170024 [专家分:500] 发布于 2009-11-01 22:18:00
我们老师都可以
我来回复