习题1

作者: 小董不太懂 | 来源:发表于2019-08-04 17:46 被阅读0次
  • 有1,2,3,4四个数字,能够组成多少个无重复的三位数,它们分别是多少?

'''
有1,2,3,4四个数字,能够组成多少个无重复的三位数,它们分别是多少?
'''
list = []
for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if(i!=j) and (j!=k) and (k!=i):
                m = [i,j,k]
                list.append(m)
                print(m)
print('共有{}位'.format(len(list)))

总结:

这个题目主要是枚举法

一. 枚举算法的思想:
  1. 枚举算法的定义:
    在进行归纳推理时,如果逐个考察了某类事件的所有可能情况,因而得出一般结论,那么该结论是可靠的,这种归纳方法叫做枚举法。
  2. 枚举算法的思想是:
    将问题的所有可能的答案一一列举,然后根据条件判断此答案是否合适,保留合适的,舍弃不合适的。
  3. 使用枚举算法解题的基本思路如下:
    (1)确定枚举对象、范围和判定条件。
    (2)逐一枚举可能的解并验证每个解是否是问题的解。
  4. 枚举算法步骤:
    (1)确定解题的可能范围,不能遗漏任何一个真正解,同时避免重复。
    (2)判定是否是真正解的方法。
    (3)为了提高解决问题的效率,使可能解的范围将至最小,
  5. 枚举算法的流程图如下所示:


拓展练习


#枚举法拓展
'''公鸡每只5元,母鸡每只3元,三只小鸡1元,用100元买100只鸡,问公鸡、母鸡、小鸡各多少只?'''
for gj in range(1,21):
    for mj in range(1,34):
        xj = 100 - mj - gj
        if gj*5 + mj*3 + xj/3*1 == 100:
            print('公鸡{}只,母鸡{}只,小鸡{}只'.format(gj,mj,xj))
#枚举法拓展
'''题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身
   分析:ABC = A**3 + B**3 + C**3
'''
for a in range(1,10):
    for b in range(10):
        for c in range(10):
            if a**3 + b**3 + c**3 == a*100 + b*10 + c:
                print(a,b,c)

#枚举法拓展
'''
问题描述:在下面的算式中,添加“+”、“-”,“*”,“/”,4个运算符,使得这个式子成立。
    5  5  5  5  5 = 5
算法分析:
上述式子左侧有5个数字,一共需要4个运算符。根据题目要求,两个数字之间的运算符只能有4中选择。在
具体编程时,可以通过循环来填入各种运算符,然后再判断算式左侧的值是否等于右侧的值。并保证,当填入的
是除号时,则右侧的数不能为0,并且乘除的优先级高于加减的优先级。
'''
#
list = ['+','-','*','/']
for a in list:
    for b in list:
        for c in list:
            for d in list:
                #上面都是遍历list列表
                #下面是先利用format函数构成四则运算的字符串形式,然后用eval函数将str型的四则运算
                #转化成float类型,然后判断筛选选出运算结果小于等于5的那些四则运算
                #再将这些float的四则运算转化为整型,并判断结果是否为5,然后再输出
                sum_base = eval('5{}5{}5{}5{}5'.format(a, b, c, d))
                if sum_base <= float(5):
                    sum = int(sum_base)
                    if sum == 5:
                        print('5{}5{}5{}5{}5 = 5'.format(a, b, c, d))

下面是运算结果,不过这题我拿不准,网上也没有资料,若朋友有更好的方法,欢迎留言交流,感谢


D:\anaconda\python.exe D:/bilibili大学/python经典习题100道/习题1.py
5+5+5-5-5 = 5
5+5-5+5-5 = 5
5+5-5-5+5 = 5
5+5-5*5/5 = 5
5+5-5/5*5 = 5
5+5*5-5*5 = 5
5+5*5/5-5 = 5
5+5/5-5/5 = 5
5+5/5*5-5 = 5
5-5+5+5-5 = 5
5-5+5-5+5 = 5
5-5+5*5/5 = 5
5-5+5/5*5 = 5
5-5-5+5+5 = 5
5-5*5+5*5 = 5
5-5*5/5+5 = 5
5-5/5+5/5 = 5
5-5/5*5+5 = 5
5*5+5-5*5 = 5
5*5-5*5+5 = 5
5*5*5/5/5 = 5
5*5/5+5-5 = 5
5*5/5-5+5 = 5
5*5/5*5/5 = 5
5*5/5/5*5 = 5
5/5+5-5/5 = 5
5/5-5/5+5 = 5
5/5*5+5-5 = 5
5/5*5-5+5 = 5
5/5*5*5/5 = 5
5/5*5/5*5 = 5
5/5/5*5*5 = 5

Process finished with exit code 0

相关文章

  • 程序设计练习题

    算法竞赛入门经典 习题1-1平均数 习题1-2温度 习题1-3 习题1-4 习题1-5 习题1-6 习题1-7 习...

  • 【Python爬虫】01作业

    习题0 在老师的帮助下完成,特别感谢程程老师! 习题1 习题2 习题3 习题4 习题5 习题6 习题7 习题8 习...

  • 【Python爬虫】-《笨办法学 Python》练习

    零基础学习python第一课,感谢程程老师! 习题0 习题1 习题2 习题3 习题4 习题5 习题6

  • 习题1

    有1,2,3,4四个数字,能够组成多少个无重复的三位数,它们分别是多少? 总结: 这个题目主要是枚举法 一. 枚举...

  • 2018-12-01

    练习题1 练习题2 练习题3

  • 【Python爬虫】-第二周 习题 13-17 (解包,参数,文

    习题 13-17 (解包,参数,文件读写等) 习题13 习题14 习题15 习题16 16-1 16-2 习题17...

  • python练习题

    1、简单的if判断语句 2、练习题 3、练习题 4、练习题 5、练习题 6、练习题 7、练习题 8、练习题 9、w...

  • 无标题文章

    ## 习题1 ##

  • 第2章练习题答案

    习题1 答: 习题2 答: 习题3 答: 习题4 如果使用gcc -wall -o e4 e4.c编译,则有警告信...

  • 习题模块总结作业

    一、ListView 习题页面显示章节习题 习题详情页面显示习题的题目及选项,选择选项后判断选项是否正确 1.简单...

网友评论

      本文标题:习题1

      本文链接:https://www.haomeiwen.com/subject/naajdctx.html