0是不是正整数 0是有理数还是无理数
本次的题目如下所示(原题出处:蓝桥杯)
【编程实现】
用户输入一个正整数N(3<=N<=9)。从0到N之间的所有正整数(包含0和N)中选择三个,组成一个三位数(0不能作为百位数),且这个三位数为奇数,请计算出共有多少种满足条件的三位数组合。(注意:组成的每个三位数各个位上的数字不能重复)
输入描述:输入一个正整数N(3<=N<=9)
输出描述:输出满足条件的三位数组合的个数
【样例输入】
3
【样例输出】
8
【上述输入输出样例的进一步解释】
用户输入的正整数,即样例输入为3,也就是将0、1、2、3四个数字进行组合。符合要求的三位数为:103、123、203、213、201、231、301、321共8个,所以样例输出为8。
这道题也是一个非常经典的算法问题,解决这道题我们还是要使用枚举的方式。关键问题在于如何枚举。我们需要组成一个三位数,从100到321进行枚举吗?这样明显是不合理的,因为中途有大量的数字与题目要求不相符。那这道题最佳的解法是枚举各个数位上的数字。
题目中提出百位数不能是0,那百位数的范围是1到n;十位数没有任何限制,十位数的范围是0到n;个位数要求是奇数,范围是1到n之间的奇数。我们假设百位、十位、个位变量名为i、j、k,那我们可以得出它们的范围分别为:
i:range(1, n + 1)j:range(0, n + 1)k:range(1, n + 1, 2)题目中提出要求,各个数位上的数字不能重复,那在枚举的范围内判断百位、十位、个位两两不相等,则满足条件,通过这个思路,我们很容易得到程序的代码:
n = int(input())
count = 0
for i in range(1, n + 1):
for j in range(0, n + 1):
for k in range(1, n + 1, 2):
if i != j and i != k and j != k:
count += 1
print(count)本题考查的是枚举算法和循环的嵌套,题目难度★★★
此道题其实改编自一道经典题目,原题如下所示:
有 1 、 2 、 3 、 4 个数字,能组成多少个互不相同且无重复数字的三位数?它们分别是多少?
本道题的难度略小于原题,两道题的思路是如出一辙。我们同样是将百位、十位、个位的变量名定义为i、j、k,可以看出,它们的范围都是range(1, 5)。这道题除了要我们求出个数外,还要将这些数全部输出,满足条件的情况下,我们只要使用100 * i + 10 * j + k即可得到这个三位数。
代码如下:
count = 0
for i in range(1, 5):
for j in range(1, 5):
for k in range(1, 5):
if i != j and i != k and j != k:
print(100 * i + 10 * j + k)
count += 1
print(&39;总数:&39;, count)当然,在三个数位上的数字都相同的情况下,我们可以优化一下代码。毕竟这样循环的话,不同数位上的数字相同也参与了循环,增加了循环次数。如果百位上已经选取的数排除掉,十位上则少循环1个数字,十位上选取的数字再排除掉,各位上则少循环2个数字,我们看看如何在进入循环之前将已选中的数字排除掉。
r = list(range(1, 5))
count = 0
for i in r:
t = r[:] 复制一个列表出来
t.remove(i) 进入下一级循环前删除已选中的百位数
for j in t:
u = t[:]
u.remove(j) 进入下一级循环前删除已选中的十位数
for k in u:
print(100 * i + 10 * j + k)
count += 1
print(&39;总数&39;, count)
bug是什么意思 自带bug是什么梗
BUG,一个让程序员加班加点,熬到头秃的东西,充斥在程序员的工作中,也充斥在程序员们的日常生活中。不过,你真的了解bug吗?你知道bug的类型吗?bug主要有以下几种经典分类:1、波尔bug大财经2023-03-20 20:57:350006融侨集团2022年净亏损93.42亿元 同比下降7737.89%
观点网讯:5月4日,融侨集团股份有限公司发布关于公司2022年度净利润亏损事项的提示公告。观点新媒体从公告获悉,融侨集团2022年度净利润为-93.42亿元,占2021年末净资产比重为-34.66%,相较于2021年度净利润下降7737.89%,公司2022年度净利润发生较大亏损。0001金尚互联2022年净利330.72万同比增长166.77% 研发费用支出减少
挖贝网5月5日,金尚互联(833576)近日发布2022年年度报告,报告期内公司实现营业收入14,021,966.77元,同比下滑2.04%;归属于挂牌公司股东的净利润3,307,173.59元,同比增长166.77%。报告期内经营活动产生的现金流量净额为2,570,889.00元,归属于挂牌公司股东的净资产32,969,955.75元。000170寸电视长宽多少厘米 80寸电视尺寸长宽多少
大财经2023-03-21 08:48:220000奥迪a5报价及图片 奥迪a5敞篷报价图片
或许是奥迪A4L以及A6L的光环过于明显,让二者之间的奥迪A5似乎缺少了几分存在感——进口身份加持下,车型的售价也围绕于40-50万价格区间展开,以中国汽车消费市场的喜好而言,A5自然要被A6L抢占不少份额,而拥有同样预算的其他年轻消费者,部分投奔了3.0T的S4……大财经2023-03-22 05:59:560000