编写一个程序,输入两个正整数m和n,查找在[m,mn]内所有可以被7整除
但不能是5的倍数。获得的数字应以逗号分隔的顺序打印在一行上。
可以先从输入获取m和n的值,然后再根据m和n,计算出mn的值,接着使用循环遍历m到mn之间的每一个数, 使用if判断能被7整除,同时不是5的倍数的数,最后根据格式打印出这些值就可以了。
代码如下:
参考链接:
m=int(input()) # 获取m的值,转为int类型
n=int(input()) # 获取n的值,转为int类型
# https://www.python51.com/mongodb/72945.html
# 计算n是几位数
nStr=str(n)
length=len(nStr)
# 根据n的位数,计算mn的值
end = m*10**length+n
#print(end)
begin=1
for i in range(m,end):
if (i%7==0) and (i%5!=0):
# 如果输出的不是第一个数,则在输出数字前,先输出一个逗号
if begin!=1:
print(',',end='')
# 输出满足条件的数
print(i,end='' )
# 将开始标记置1,即表示已经输出了一个数,以后打印数字前需要先打印一个逗号
begin=0
矩阵A与n维列向量x的乘法运算规则可以理解为:
在矩阵A的作用下,原始的n维基向量
被映射成了新的m维基向量
原始的n维基向量
被映射成了新的m维基向量
从上面的推导过程中可以发现,映射前后,列向量x的基向量维数都发生了变化,原始的n为列向量x被变换成了n个m维的列向量线性组合的形式。最终的运算结果是一个m维的列向量。
我可以给出具体的解决方案。
该程序可以通过一个简单的循环实现,只需要判断每个数字是否符合条件,如果符合则加入一个列表中,最后使用join函数将列表中的数字用逗号连接起来输出即可。具体步骤如下:
下面是具体代码实现:
def find_nums(m, n):
nums = []
for i in range(m, n + 1):
if i % 7 == 0 and i % 5 != 0:
nums.append(str(i))
return ','.join(nums)
在主程序中调用该函数即可,例如:
m = 10
n = 40
result = find_nums(m, n)
print(result)
输出结果为:14,28,42.
需要注意的是,如果区间[m,n]中没有符合条件的数,则返回的字符串为空。