鱼C论坛

 找回密码
 立即注册
查看: 3846|回复: 3

[已解决]我知道字符串可以用index提出每一个字符,数字可以吗?

[复制链接]
发表于 2018-1-21 23:54:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
学到求水仙花集,用的是:
for i in range(100,1000):
        temp = i
        result = 0
          while temp:
        result = result + (temp%10)**3
        temp = temp//10

分别提取,个、十、百位进行操作。我想问,数字能像字符串那用,用i[0]、i[1]、i[2] 分别表示百、十、个位吗?如果可以的话,程序就可以变成:
for i in range(100,1000):
        result=i[0]**3+i[1]**3+i[2]**3

但实际是不行的,怎样才能简单提出每一个数字呢?
最佳答案
2018-1-22 07:29:39
本帖最后由 BngThea 于 2018-1-22 09:05 编辑

先将i转换为str
再提取每一个字符
将每个字符转换为int
最后进行判断

  1. for i in range(100,1000):
  2.     t = str(i)
  3.     total = int(t[0])**3 + int(t[1])**3 + int(t[2])**3
  4.     if i == total:
  5.         print("%d 是水仙花数!" % i)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-1-22 02:54:24 From FishC Mobile | 显示全部楼层
本帖最后由 h20060304 于 2018-1-22 04:36 编辑

你的想法很好啊,只是你可能还没有到达那个层次!继续努力!

下面给你贴上 代码:如果有问题,及时回复!
  1. def nature(n):
  2.    
  3.     while True:
  4.         
  5.         yield n

  6.         n += 1

  7. start = 100

  8. number_gen = nature(start)

  9. number = next(number_gen)

  10. while number < 1000:

  11.     new_number = sum(map(lambda x : int(x) ** 3, str(number)))
  12.    
  13.     if new_number == number:
  14.    
  15.         print('{} 是水仙花数'.format(number))
  16.         
  17.     number = next(number_gen)
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-22 07:29:39 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
本帖最后由 BngThea 于 2018-1-22 09:05 编辑

先将i转换为str
再提取每一个字符
将每个字符转换为int
最后进行判断

  1. for i in range(100,1000):
  2.     t = str(i)
  3.     total = int(t[0])**3 + int(t[1])**3 + int(t[2])**3
  4.     if i == total:
  5.         print("%d 是水仙花数!" % i)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-22 10:05:30 | 显示全部楼层
哗,利害,我怎么没想到转换成字符,再转回数字呢?二楼的看不懂。比较高深,先谢谢你
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-13 23:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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