python最大約數是_python – 找到最大的公約數(賦值錯誤,我迫切需要你的幫助)

我有一個作業(作業)如下:

Write a program which enters two positive integers a and b from the

keyboard. Also write a recursive function for determining the gcd

(greatest common divisor) of a and b using Euclid’s algorithm.

According to this algorithm if the first number is divisible by the

second one then thesecond one is the gcd. If this is not the case then

the gcd of the second number and the remainder of a=b has to be

determined. The result should be printed on the screen outside of the

function.

這是我的解決方案:

a=int(input("Enter the first number: "))

b=int(input("Enter the second number: "))

def GCDfinder(m,n):

z=abs(m-n)

if (m-n)==0:

return n

else:

return GCDfinder(z,min(m,n))

print (GCDfinder(a,b))

這個答案得到了50%.我認為分級的老師的助手不知道她做了什么.她的評論如下:

That is not the method described in the assignment. You should first

check if a%b==0 then return b. Or return gcd(b, a%b) Also check that

the input is positive and a>b

2-)絕對不需要檢查> b并且也不需要檢查輸入是否為正,因為我使用了abs()

TA沒有誤導作業嗎?還是我錯了?

最佳答案 雖然你實現的確實是一個GCD查找器,但它不是Euclid的算法

這就是你所做的:

if the two numbers are equal

return either one as the GCD

else

return the GCD of the absolute difference between them and the smaller number

您的算法通過重復減法找到GCD.雖然這沒有錯,但肯定不是Euler的算法(雖然它很接近).

歐拉的算法確實:

if the smaller number perfectly divides the larger

return the smaller number as the GCD

else

return the GCD of

1. the remainder from dividing the bigger number by the smaller

2. the smaller number

因為Euclid的算法使用模數運算符,所以它會經歷更少的步驟,而實際上計算的算法與算法相同.結果,它更有效率.

這是Euclid算法的一個實現:

def GCDfinder(a,b):

while b != 0:

a,b = b, a%b

return a

>>> GCDfinder(12,20)

4

>>> GCDfinder(17,20)

1

>>> GCDfinder(3,4)

1

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/530187.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/530187.shtml
英文地址,請注明出處:http://en.pswp.cn/news/530187.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

c#簡單記事本應用程序的快捷方式_Windows 10七月更新又翻車,記事本沒了

每一次微軟更新,總是能引起一篇“哀嚎”,翻車實在太頻繁了,讓人又愛又恨。近日,微軟在本月更新補丁推送上,進行了新的調整,讓分預裝的應用程序被悄然刪除,這導致不少用戶只能逐一重新安裝。從目…

python我的世界給予物品指令_我的世界指令給予物品 我的世界指令給予物品是多少...

給予物品指令為 /give 人物id 物品id 數量,如果數量不填的話默認是64個。示例:/give AW fire_charge 64 給玩家AW 64個火焰彈。其他指令一覽/nick ID 名稱 -給某人改一個名 ID是加白名單的名字/backup -運行備份命令/fireball -發射一個火球(會破壞方塊)…

db2 空值轉換函數_Hive常見函數的使用

hive函數1.關系函數等值比較 語法&#xff1a;AB 如果表達式A和表達式B相等&#xff0c;則為TRUE&#xff1b;否則為FALSE不等值比較 <>語法&#xff1a;A <> B如果表達式A為null&#xff0c;或者表達式B為null&#xff0c;返回null&#xff1b;如果表達式A和表達式…

中級軟件測試筆試題100精講_匯集上千位軟件測試精英面試筆試題,最全面的題型都在這!...

知己知彼&#xff0c;才能百戰不殆測試員想要在競爭激烈的職場中擁有一席之地&#xff0c;就需要提前做好準備。前人栽樹&#xff0c;后人乘涼一次面試就能入職自己心儀的公司&#xff0c;就需要通過“前人”積累的面試題來了解面試官的“套路”&#xff0c;通過不斷的優化答案…

學考語言成績c對高考有影響嗎_三大影響!考生務必上心,最近正在進行的學考對升學很重要...

閱讀關鍵詞&#xff1a;【填報技巧】【新高考】近日(1月6-8日)&#xff0c;高中生們正在進行2021年1月普通高中學業水平合格性考試(也就是大家普遍說的“學考”&#xff0c;又稱“合格性考試”)。學考成績有哪些用途&#xff1f;跟高考錄取到底有什么關系&#xff1f;……今天我…

三次握手和四次揮手圖解_TCP三次握手和四次揮手詳解

作者&#xff1a;雨點的名字來源&#xff1a;https://www.cnblogs.com/qdhxhz/p/8470997.htmlTCP有6種標示:SYN(建立聯機) ACK(確認) PSH(傳送) FIN(結束) RST(重置) URG(緊急)一、TCP三次握手第一次握手客戶端向服務器發出連接請求報文&#xff0c;這時報文首部中的同部位SYN1…

ubuntu修改新增用戶的目錄_Linux 用戶、用戶組添加修改刪除(ubuntu、centos)

一、LINUX(UBUNTU/CENTOS)用戶添加刪除修改1、建用戶&#xff1a;adduser web #新建web用戶useradd web #添加web 用戶passwd web #給web用戶設置密碼useradd web -g admin -n -m #新建web用戶并指定用戶組為 admin用戶組,并自動建立登錄目錄passwd web #給web 用戶設置密碼use…

讀excel_基礎 | Excel中單元格的引用方式,讀這篇就夠了!

最近推送了幾個Excel中最難的函數&#xff0c;哀嚎遍野&#xff0c;太難了……所以今天我們來“從萬丈高樓平地起”的平地講起&#xff01;搞懂Excel單元格引用方式&#xff0c;是保證公式準確最最基本的條件&#xff01;單元格引用方式整體分三種&#xff1a;相對引用(A1)絕對…

天融信防火墻重置配置_天融信防火墻配置手冊

天融信防火墻配置指南一、對象與規則現在大多防火墻都采用了面向對象的設計。針對對象的行為進行的快速識別處理&#xff0c;就是規則。比如&#xff1a;甲想到A城市B地點。由這個行為就可以制定一些規則進行約束&#xff0c;例如&#xff1a;1)用戶身份識別&#xff0c;是不是…

32匯編語言程序說明_Linux 匯編語言學習--編譯和鏈接

上次我們提到了匯編語言的兩種格式&#xff0c;Intel 和 AT&T 格式&#xff0c;今天講的是對應兩種編譯器的一些使用。我們知道&#xff0c;編譯器就是一個將一種程序語言翻譯成另外一種語言的程序。編譯的過程其實共有5個流程&#xff1a;詞法分析、語法分析、語義分析和中…

占用系統資源測試_高頻性能測試面試題15道

1、解釋常用的性能指標名稱與具體含義性能測試 通過測試工具模擬多種正常、峰值及異常負載條件來對系統的各項性能指標進行測試。驗證軟件系統是否能夠達到用戶提出的性能指標&#xff0c;發現系統中存在的性能瓶頸并加以優化。性能指標分為兩個方面&#xff1a;系統指標&#…

ensp1.3.00.100用哪個virtualbox_virtualBox使用 Ubuntu18.0.4

一、視圖進入縮放模式&#xff0c;虛擬機上方菜單欄無法顯示&#xff1f;熱鍵c&#xff0c;恢復。 熱鍵默認為右邊的ctrl鍵。開啟增強功能&#xff1f;打開虛擬機后&#xff0c;點擊上方設備-->安裝增強功能。虛擬機里面會出現識別到光盤。先掛載光盤到指定路徑&#xff1a;…

動態ram依靠什么存儲信息_處理器內存系統1(ROM,RAM,數據存儲順序)

本篇文章主要介紹處理器中存儲器&#xff1a;ROM和RAM以及數據在內存中的存儲順序&#xff1a;大/小端(Little/Big Endian)。只讀存儲器(ROM)ROM(Read Only Memory)用來存儲和保存數據。ROM數據不能隨意更新&#xff0c;但是在任何時候都可以讀取。即使是斷電&#xff0c;ROM也…

python中row的用法_關于Python中openpyxl使用iter_rows()的方法

之前已經對iter函數的用法有過講解,記憶遺忘的小伙伴可以重新回顧一遍。今天就iter函數的拓展,講講openpyxl中導入iter_rows()的方法。 當我們使用以下代碼: import openpyxl as op ms = op.load_workbook(mtest.xlsx) ws = ms.active op.worksheet.Worksheet.iter_rows() 然…

市直系統推薦市級以上表彰的_推薦市級以及以上教學方面表彰的細則

推薦市級以及以上教學方面表彰的細則為了客觀、公正、合理地評價教師的德、才表現和工作實績&#xff0c;用制度來激勵、督促全體教職工提高政治和業務索質&#xff0c;認真履行好自身工作職責。避免人為因素&#xff0c;增強評優的透明度&#xff0c;有利于調動廣大教職工工作…

react全局狀態管理_react狀態管理redux

Redux(上)結合阮老師的技術博客&#xff0c;將自己吸收到的內容做了個整理&#xff1a;曾經有人說過這樣一句hua : 如果你不知道是否需要Redux&#xff0c;那就是不需要它。從組建層面考慮&#xff0c;什么樣子的需要redux&#xff1b;某個組件的狀態需要共享&#xff0c;某個狀…

edges2shoes數據集下載_edges2cats

edges2cats是一款十分有趣味的生成貓咪的游戲&#xff0c;在這款游戲是以多種不同的圖形相結合&#xff0c;來生成你所想要生成的畫面&#xff0c;游戲的玩法非常的有趣&#xff0c;感興趣的可以試玩哦&#xff01;edges2cats游戲怎么玩 玩法介紹首先清除畫面&#xff0c;根據你…

單片機機器周期怎么計算公式_單片機定時器周期計算公式

定時器是單片機的重要功能模塊之一&#xff0c;在檢測、控制領域有廣泛應用。定時器常用作定時時鐘&#xff0c;以實現定時檢測&#xff0c;定時響應、定時控制&#xff0c;并且可以產生ms寬的脈沖信號&#xff0c;驅動步進電機。定時和計數的最終功能都是通過計數實現&#xf…

mac 下mysql工具_mysql之工具的使用總結(mac版本)

13.mysql Mac終端操作12.MySql在Mac上的安裝與配置詳解&#xff1b;11.mac下安裝mysql5.7.18&#xff0c;連接出現Access denied for user rootlocalhost (using password: YES)13.mysql Mac終端操作1.啟動mysql &#xff1a;brew services start mysql2.登陸mysql : mysql -u…

sqoop同步時間戳到mysql_在sqoop導入中使用24小時時間戳

我想從使用自由格式查詢的oracle導入數據&#xff0c;并且需要以24小時格式存儲時間戳。在sqoop導入中使用24小時時間戳sqoop import --connect jdbc:oracle:thin:(server credntials) \--username ***** --password ***** \--query "select emp_uid, emp_name, salary, t…