博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codewars第十四天–Numbers that are a power of their sum of digits
阅读量:4302 次
发布时间:2019-05-27

本文共 822 字,大约阅读时间需要 2 分钟。

Codewars第十四天–Numbers that are a power of their sum of digits

题目描述:

数字81有一个特殊的属性,其数字之和的某个幂等于81(九的平方)。 八十一(81),是拥有这个属性的第一个数字(不考虑一位数字)。 下一个是512.让我们看两个案例的细节
8+1=9 8 + 1 = 9 92=81 9 2 = 81
512=5+1+2=8 512 = 5 + 1 + 2 = 8 83=512 8 3 = 512

我们需要创建一个函数power_sumDigTerm(),它接收一个数字n并可以输出这个数字序列的第n项。 我们上面提到的例子意味着:

power_sumDigTerm(1)== 81

power_sumDigTerm(2)== 512

代码如下:

这道题目的主要思路是创建一个新的数组,将所有可能的数字加入到数组中。
我们的首要目标就是要找出这些数字。这里需要巧妙的使用map() 函数:

n=81a=sum(map(int, str(n)))

首先将输入的数字转换成字符串,对字符串中的每一个字符,也就是每一位数字用map映射为int格式,然后对他们求和。

通过这个map 映射判断,就可以找出所有符合条件的数字了。

def power_sumDigTerm(n):    #your code here    power_sum = []    for i in range(2, 100):        for j in range(2, 50):            pow_i = i ** j            if sum(map(int, str(pow_i))) == i:                power_sum.append(pow_i)    power_sum.sort()    return power_sum[n-1]

转载地址:http://pqmws.baihongyu.com/

你可能感兴趣的文章
史丹·温斯坦称傲牛熊市的秘密
查看>>
期货市场技术分析01_理论基础
查看>>
期货市场技术分析02_趋势的基本概念
查看>>
期货市场技术分析03_主要反转形态
查看>>
期货市场技术分析04_持续形态
查看>>
期货市场技术分析05_交易量和持仓兴趣
查看>>
TB交易开拓者入门教程
查看>>
TB创建公式应用dll失败 请检查用户权限,终极解决方案
查看>>
python绘制k线图(蜡烛图)报错 No module named 'matplotlib.finance
查看>>
talib均线大全
查看>>
期货市场技术分析06_长期图表和商品指数
查看>>
期货市场技术分析07_摆动指数和相反意见理论
查看>>
满屏的指标?删了吧,手把手教你裸 K 交易!
查看>>
不吹不黑 | 聊聊为什么要用99%精度的数据回测
查看>>
X 分钟速成 Python
查看>>
对于模拟交易所引发的思考
查看>>
高频交易的几种策略
查看>>
量化策略回测TRIXKDJ
查看>>
量化策略回测唐安奇通道
查看>>
CTA策略如何过滤部分震荡行情?
查看>>