设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 4479|回复: 3
打印 上一主题 下一主题

一个计算练习题

[复制链接]

1

主题

0

好友

55

积分

实习版主

Rank: 7Rank: 7Rank: 7

楼主
发表于 2017-12-28 11:09:36 |显示全部楼层
# -*- coding:utf-8 -*-
import random
import time
list=[0,1,2,3,4,5,6,7,8,9]
start_time=time.time()
while True:
    slice = random.sample(list, 8)
    s, e, n, d, m, o, r, y = slice
    if s!=0 and m!=0:
        if (s*1000+e*100+n*10+d)+(m*1000+o*100+r*10+e)==(m*10000+o*1000+n*100+e*10+y):
            print s,e,n,d,m,o,r,y
            break
end_time=time.time()
print 'time=%.2fsecs'%(end_time-start_time)
回复

使用道具 举报

1

主题

0

好友

55

积分

实习版主

Rank: 7Rank: 7Rank: 7

沙发
发表于 2017-12-28 11:11:44 |显示全部楼层
谢谢老铁,顶你!
回复

使用道具 举报

1

主题

0

好友

55

积分

实习版主

Rank: 7Rank: 7Rank: 7

板凳
发表于 2017-12-28 13:49:54 |显示全部楼层
TED 发表于 2017-12-28 13:29
用随机的话,假设结果不止一种,怎么全列出来

如果m!=0,就这一种答案吧,把break去掉,不停的循环,都是一种答案。
如果m可以0-9,那把‘if s!=0 and m!=0’和break去掉,让不停的循环,得出所有答案。只不过中间会重复答案。
这个时候就得再增加保存语句,每次得出的一个答案,保存到一个文件,后续得出的答案,先判断是否已经存在,如果不存在,就增加进去,直到随机得出所有答案,跳出循环,最后把保存的文件读出来,打印就可以了。
老铁,觉得呢?
回复

使用道具 举报

1

主题

0

好友

55

积分

实习版主

Rank: 7Rank: 7Rank: 7

地板
发表于 2018-1-25 14:50:04 |显示全部楼层
红薯 发表于 2018-1-17 13:27

厉害,学习了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-19 10:40 , Processed in 0.029945 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部