Python 欧几里德';s除法算法(寻找HCF)有更好的方法吗?
有没有更好的写作方法? 如果我使用的语法不正确,请告诉我Python 欧几里德';s除法算法(寻找HCF)有更好的方法吗?,python,Python,有没有更好的写作方法? 如果我使用的语法不正确,请告诉我 我不知道为什么我不能发布这篇文章。这表明你的文章大部分是代码。请解释忽略这最后一部分。这只是为了解决这个问题。这是另一种编写代码的方法 更正发布代码中提供错误结果的错误 使用算法中的变量为变量名提供引用 使用字符串插值显示公式 欧几里德算法 实施 a、 b,q,r对应于算法中的a,b,qi,ri #HCF #input C = int(input("the bigger number:" )) D = int
我不知道为什么我不能发布这篇文章。这表明你的文章大部分是代码。请解释忽略这最后一部分。这只是为了解决这个问题。这是另一种编写代码的方法
- 更正发布代码中提供错误结果的错误
- 使用算法中的变量为变量名提供引用
- 使用字符串插值显示公式
#HCF
#input
C = int(input("the bigger number:" ))
D = int(input("the smaller number:" ))
#division
N = "="
M = "x"
A = "+"
#i don't know if I can add this to the while loop
Q = C//D
S = C%D
print (C,N,D,M,Q,A,S)
E = S
s = D
D = C
#Euclid's division algorithm
while S != 0:
Q = s//E
S = s%E
print(s, N,E, M, Q, A, S)
s = E
if S == 0:
print ("HCF =",E)
else :
E = S
用法
def euclidean_algorithm(a, b):
" Displays iterations of the euclidean algorithm "
if b > a:
# swap if necessary
# to ensure a is the larger number
a, b = b, a
while b:
q = a // b
r = a - q*b
print(f'{a} = {q} x {b} + {r}') # use string interpolation to show formula
a, b = b, r
print(f'HCF = {a}')
return a
输出
a = int(input('First number: '))
b = int(input('Second number: '))
euclidean_algorithm(a, b)
你可以用最短的篇幅来解释你的问题。当所有变量名都是单个字母时,这一点尤为重要,因此没有人可能知道代码试图实现什么。在Python(和其他语言)中查找欧几里德除法算法(又名gcd)进行比较
N=“=”
等的目的是什么?除了使代码更不可读之外?您的代码报告的结果不正确。例如,C=498,D=222
您的代码打印的是HCF=54
,而实际上是6。感谢您的所有输入,下次我将尝试使我的代码更具可读性。谢谢谢谢,这有助于我理解我的第一个编码,所以非常感谢:)@manav——很高兴它有帮助。如果有帮助,别忘了
First number: 498
Second number: 222
498 = 2 x 222 + 54
222 = 4 x 54 + 6
54 = 9 x 6 + 0
HCF = 6