python求硬幣問題(python湊硬幣)

本文目錄一覽:

python n個硬幣中找一個假幣,且已知假幣較輕,怎麼用遞歸和非遞歸兩種方法求

思路:假設有數組arr,裏面的int值代表銀幣重量,下標代表第幾個銀幣。

循環(非遞歸):把數組第一個值賦值給變量tmp,從第二個變量循環到最後一個,比較循環里的變量和tmp值,如果不等,就返回小數下標。

遞歸:用二分思想,銀幣分2堆(不能均分時把中間那個留出來),取重量小的那堆繼續二分。最後只剩下一個時就是所求

下面這種寫法是返回下標的。也可以把硬幣假設成一種數據類型,然後返回那個類型

#!/usr/bin/python

# -*- coding: utf-8 -*-

#返回最小值下標

def getMin(arr1):

   if len(arr1)==0:return -1

   tmp=arr1[0]

   index=0

   for cur in arr1:

      if tmp!=cur:

         return 0 if tmpcur else index

      index+=1

   return -1

real_index=0

#返回最小值下標 遞歸

def getMinRecursion(arr1):

   global real_index

   n=len(arr1)

   if n==0:return -1

   if n==1:return real_index

   if n==2:return real_index if arr1[0]arr1[1] else real_index+1

   sum1=sum(arr1[0:int(n/3)])

   sum2=sum(arr1[int(n/3):int(n/3)*2])

   if sum1==sum2:

      real_index+=int(n/3)*2

      return getMinRecursion(arr1[int(n/3)*2:n+1])

   if sum1sum2:

      return getMinRecursion(arr1[0:int(n/3)])

   else:

      real_index+=int(n/3)

      return getMinRecursion(arr1[int(n/3):int(n/3)*2])

arr=[1,1,1,1,1,1,0,1,1]

print(“%d”%getMin(arr))

print(“%d”%getMinRecursion(arr))

用python做一個程序:扔100次硬幣,然後分別顯示出擲出正面和反面的次數

7行代碼即可寫出程序,詳細步驟:

1、首先打開python自帶的IDLE,打開IDLE並ctrl+n新建如圖界面。

2、導入random模塊的choice功能。

3、在列表中放置up和down這兩個元素,這裡表示正面朝上和正面朝下。因為不考慮硬幣立着的奇葩設定,所以只加這個上和下。並且把列表賦予給coin這個變量。

4、接下來使用for循環來遍歷,range後面為拋硬幣次數,這裡我想程序運行一次只拋硬幣一次,所以range後面設置為1。

5、這一行,就是if判斷了,如果隨機從列表中抽取到了up。

6、那麼就要輸出「正面」。

7、否則,就輸出「反面」。

8、至此此代碼完成,按F5即可運行,運行一次就拋一次。

新人,求大神幫助:用python 寫兩個程序 1,有30枚硬幣,其中一枚是假幣,假幣較輕,現有一

NO.1

#encoding: UTF-8

”’

只想到用二分法查找

”’

import random

def FindMoney(aList):

if len(aList) == 2:

if aList[0]  aList[1]:

print aList[1]

else:

print aList[0]

else:

if sum(aList[len(aList)/2:])  sum(aList[:len(aList)/2]):

FindMoney(aList[:len(aList)/2])

else:

FindMoney(aList[len(aList)/2:])

a = [1] *29 + [0]

a.sort(lambda a,b: random.randint(-1, 1))  #亂序

print a

FindMoney(a)

NO.2,詳細解釋請參照 

#encoding: UTF-8

from collections import deque

import random

def Matchschedule(team):

    c = team[1:]

    c = deque(c)

    for i in range(len(team) – 1):

        c.appendleft(team[0])

        for j in range(len(team)/2):

            print c[j], “—–“, c[-1-j]

        c.popleft()

        c.append(c.popleft())

if __name__ == “__main__”:

    a = [i for i in range(1,33)]

    Matchschedule(a)

python 找零錢

按照題目要求編寫的Python找零錢程序如下

def smallchange(money):

 fifty=50

 ten=10

 five=5

 one=1

 print(money//fifty,end=’ ‘)

 money=money%fifty

 print(money//ten,end=’ ‘) 

 money=money%ten

 print(money//five,end=’ ‘)

 money=money%five

 print(money//one)

 

l=[]

n=int(input())

for i in range(n):

 l.append(input())

for i in range(n):

 pay,payable=l[i].split(‘ ‘)

 money=int(pay)-int(payable)

 smallchange(money)

源代碼(注意源代碼的縮進)

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/307120.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-02 18:06
下一篇 2025-01-02 18:06

相關推薦

  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python官網中文版:解決你的編程問題

    Python是一種高級編程語言,它可以用於Web開發、科學計算、人工智能等領域。Python官網中文版提供了全面的資源和教程,可以幫助你入門學習和進一步提高編程技能。 一、Pyth…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29

發表回復

登錄後才能評論