cnCalc计算器论坛

 找回密码
 注册
搜索
查看: 2081|回复: 4

一个问题的多种解法————浅谈ES编程风格

[复制链接]
发表于 2010-4-18 18:04:36 | 显示全部楼层 |阅读模式
1->X
1->Y
X+Y->X:X+Y->Y

n→X
0→A
1→B
XP1-1→X:A+B→B:B-A→A
上面两种是比较基本的解法。
第一种简洁高效,大家应该都看得懂。
第二种多了计数语句,也应用了编程中常见的加减对换数字,不过没有做到一个语句一个输出,需要较多等号。但是排列组合运算速度较快,这种思想还是值得参考的。

n-1->Y
1->X
1->A
Rec(Pol(a-x,y-1),y)+0/y+a->a
这可以说是第二种的一个变形,只有一句语句的方案,但缺点也很明显:开头的数字0不能输出。也需要一定的思考,临场的实用性稍差。

n→X
1→A
1→B
0Pol(X-1,0)/X+A+B->A:0Pol(X-1,0)/X+A+B->B
第一种的一个变形,增加了判断句,程序偏长不过比较容易看懂,是考场上较容易用到的方式。

1->X
1->Y
0Rec(Pol((X+Y)*Y,Y),Y)+Rec(Pol(X,X/Y),Y)/Y->X
较有程序员思想的解法,也只有一句语句,运用乘除完美解决问题。但同样的,对大部分人来说较有难度。


同一个问题,不同的解法,各有各的优势。我就在此浅谈几句,大家慢慢看吧。
以上对解法的分析纯属个人意见,只对程序不对人,仅供参考。

http://www.cncalc.org/thread-2959-1-1.html

评分

参与人数 2金钱 +12 收起 理由
shyc2001 + 2 很好
991es82es + 10 我很赞同

查看全部评分

发表于 2010-4-18 20:26:14 | 显示全部楼层
首先,功能不够完备是不争的事实,不足为怪,毕竟卡西欧不是神舟小本,就好像有神贴用圆珠笔画风景画,你总不能指责他色调单一吧。
其次,卡西欧的确很强大,有一次我要分解几个不大不小的数,懒得自己动手,就写了个简单的循环体,一边听着老师讲课一边按等号(不过速度慢得可以)。(循环体的形式为Ceil(X/Floor(X/Ans)),X是要分解的数,Ans是上次结果(从2开始),Ceil、Floor分别是取上下整,因为我的卡西欧没有,所以用三角函数编了一下)举这个例子就是想说明,没有条件要自己创造条件,这种精神是可嘉的。
最后,在这位NB同学的激励下,我下定决心:今年之内一定要弄个文字界面的单机版0.0.0.1来……
(感觉自己乱七八糟地说了一大堆来顶神贴……)

谁解释一下?
 楼主| 发表于 2010-4-18 20:34:03 | 显示全部楼层
上面的这段话是哪儿的?
发表于 2010-4-18 20:35:21 | 显示全部楼层
贴吧淘来的
 楼主| 发表于 2010-4-18 20:41:56 | 显示全部楼层
大概看懂了。。就相当于我那张Excel表格里的Intz(X/Int(X/Ans)),但是函数的实现方法是zasdfgbnm之前的三角函数方法,然后做递归就出来了
总之现场就编出这个,还比手算快的,牛人啊。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cnCalc计算器论坛

GMT+8, 2024-11-22 03:32 , Processed in 0.056247 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表