如何在Scheme中计算数字的总和?
|
我想计算Scheme中一个数字的总和。它应该像这样工作:
>(sum-of-digits 123)
6
我的想法是将数字123
转换为字符串\"123\"
,然后将其转换为列表\'(1 2 3)
,然后使用(apply + \'(1 2 3))
得到6
。
但不幸的是,它无法像我想象的那样工作。
>(string->list(number->string 123))
\'(#\\1 #\\2 #\\3)
显然\'(#\\1 #\\2 #\\3)
与\'(1 2 3)
...不一样,因为我在DrRacket下使用的语言是racket
,因此我无法使用like10ѭ之类的函数。
谁能帮我解决这个问题?
没有找到相关结果
已邀请:
6 个回复
诫商
臀博
...产生
凡夕
无论如何,如果您正在执行idk,但这个问题使我想到了Euler项目。如果是这样,您将在以后的问题中欣赏到这两个功能。 以上是最困难的部分,其余部分为:
要么
编辑-我摆脱了上面的
,但以防万一您仍然想要它。
奥李
给出
,
给出
。总和是
。 这是F#中的算法(很抱歉,我不知道Scheme):
邵酮
可以将转换函数考虑在内以使其更加清晰:
攫怂绵十
递归过程..终止于
,其中
返回输入
本身。