首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在方案中求数字数字的平方和

在方案中求数字数字的平方和
EN

Stack Overflow用户
提问于 2017-03-22 17:29:03
回答 1查看 729关注 0票数 0

我需要在方案中写一个函数来计算平方位数的和。

代码语言:javascript
复制
ex - (sum-of-digits 130)
    > 10

这是我的职责。

代码语言:javascript
复制
(define (sum-of-digits x)
      (if (= x 0) 0
          (+ (modulo x 10) (sum-of-digits (/ (- x (modulo x 10)) 10)))))

对某些数字来说是行不通的。当我输入(数字之和130)时,它返回4。如何修复这个问题?

另外,我需要使用这个函数来找出0,1,4,16,20,37,42,58,89,145的停车号码。

代码语言:javascript
复制
ex :- (stop? 42)
 #t

(stop? 31)
 #f

如何使用上面数字和的函数和来完成这个任务?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-22 18:29:18

你忘记了每一个数字的平方,还有一种更简单的获得商数的方法:

代码语言:javascript
复制
(define (sum-of-digits x)
  (if (= x 0) 
      0
      (+ (sqr (modulo x 10))
         (sum-of-digits (quotient x 10)))))

关于问题的第二部分:

代码语言:javascript
复制
(define (stop? x)
  (let ((sum (sum-of-digits x)))
    (if (member sum '(0 1 4 16 20 37 42 58 89 145)) #t #f)))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42958757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档