在SNOBOL中编写一个简短的程序,计算从1到100的所有偶数和的总和

时间:2016-11-18 05:00:12

标签: snobol

你应该使用循环进行多次迭代。 GOTO语句和标签可用于设计您需求的循环。 请给我一些想法。

2 个答案:

答案 0 :(得分:2)

如果它不包含模式匹配,我认为它不是真正的Snobol ......

此解决方案通过将模式与字符串000 .. 100匹配并通过函数"01012345678902468"添加生成的数字来生成偶数add()。循环通过模式末尾的FAIL关键字完成,这会强制模式扫描继续寻找备选方案,直到表达式(*EQ(h t o,100) ABORT)导致扫描中止。

    &FULLSCAN = 1
    DEFINE('add(x)') :(add.End);add sum = sum + x :(RETURN);add.End
    "01012345678902468" (LEN(1) $ h *LEN(1 - h)) ARB (LEN(1) $ t 
.       *LEN(9 - t)) ARB LEN(1) $ o *add(h t o) 
.       (*EQ(h t o,100) ABORT) FAIL
    OUTPUT = sum
END

在Snobol和Spitbol中都有效(Snobol需要&FULLSCAN = 1,它在Spitbol中是无操作的)

答案 1 :(得分:1)

*这适用于Spobbol版本的Snobol。

循环m = le(n,98)(n = n + 2)+ m:s(循环); output = m;结束