码迷,mamicode.com
首页 > 编程语言 > 详细

一个数学问题的Python解决方法

时间:2019-09-21 21:27:31      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:bre   color   for   提升   列表   数字   计算   字符串   pytho   

一个正整数n。
它是由数字3和7组成,且这个数以及这个数
各位数字之和都是3和7的倍数,求n的最小值
要有过程。

 

# coding=utf-8
import numpy as np
x_num = 1
while True:
    x_str = str(x_num)       #数字转换为字符
    x_str_list = list(x_str)    #为将元组转换为列表
    x_str_len = len(x_str_list) #列表元素个数
    x_com=x_num     #为了后续是否因为不满足条件而到导致数字继续推后
    x_str_list_num= map(int, x_str_list)    #将字符数组转化为数字数组
    sum_x=np.sum(x_str_list_num)            #对一位数组进行求和
    for word in x_str_list:                 #字符串字符依次提取
        if ((int(word)==3 or int(word)==7) and (x_num%21==0) and (sum_x%21==0) and (3 in x_str_list) and (7 in x_str_list)):
            #该数字必须含有3和7,且这个书是21的倍数,且各个位数之和为3和7的倍数
            continue        #继续本循环
        else:
            x_num = x_num + 21  #如果不满足条件的话,数字后移
            break           #跳出最近的一个循环
    if x_com==x_num:        #如果满足要求,即上一个for循环正常结束,跳出while循环
        break
    else:
        print(x_num)
        continue            #如果条件不满足,继续while循环

print(x_num)
结果是:3333377733
计算效率有待提升

一个数学问题的Python解决方法

标签:bre   color   for   提升   列表   数字   计算   字符串   pytho   

原文地址:https://www.cnblogs.com/yueluhun/p/11564478.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!