第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Collat??z循環(huán)結(jié)構(gòu)

Collat??z循環(huán)結(jié)構(gòu)

千萬里不及你 2021-04-05 16:19:27
請(qǐng)幫助我了解我做錯(cuò)了什么。問題是Collatz序列編寫一個(gè)名為collatz()的函數(shù),該函數(shù)具有一個(gè)名為number的參數(shù)。如果number是偶數(shù),則collatz()應(yīng)該打印數(shù)字// 2并返回該值。如果number為奇數(shù),則collatz()應(yīng)該打印并返回3 * number + 1。然后編寫一個(gè)程序,讓用戶輸入一個(gè)整數(shù),并繼續(xù)對(duì)該數(shù)字調(diào)用collatz(),直到該函數(shù)返回值1。您將達(dá)到1!即使是數(shù)學(xué)家也不確定為什么。您的程序正在探索所謂的Collatz序列,有時(shí)稱為“最簡單不可能的數(shù)學(xué)問題”。)記住要使用int()函數(shù)將input()的返回值轉(zhuǎn)換為整數(shù);否則,它將是一個(gè)字符串值。提示:即使數(shù)字%2 == 0,整數(shù)也是偶數(shù);如果數(shù)字%2 == 1,則整數(shù)是奇數(shù)。def collatz(number):    if number%2==0:        print(number//2)    else:        print(3*number+1)x = int(input('print num'))while TRUE:    if collatz(x)!=1:        break
查看完整描述

3 回答

?
HUWWW

TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊

您必須打印并返回函數(shù)collatz(num):


def collatz(number):

    """prints and returns the next number in the Collatz sequence

    """

    if number % 2 == 0:

        next_collatz_number = number // 2

    else:

        next_collatz_number = 3 * number + 1

    print(next_collatz_number)

    return next_collatz_number


x = int(input('print num'))


while True:

    x = collatz(x)

    if x == 1:

        break


查看完整回答
反對(duì) 回復(fù) 2021-04-20
?
慕村225694

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊

正如其他人的評(píng)論所說,你的函數(shù)collatz()必須返回一個(gè)整數(shù)還,被送入collatz()一次。


在您已經(jīng)完成的工作的基礎(chǔ)上,我們可以collatz_sequence(x)重復(fù)調(diào)用該函數(shù)collatz()以獲得所需的結(jié)果:


def collatz(x):

    if x % 2 == 0:

        a = x//2

    else:

        a = 3*x+1

    print(a)

    return a


def collatz_sequence(x):

    print(x)

    while x!=1:

        x=collatz(x)

這是示例輸出:


>>> collatz_sequence(6)

6

3

10

5

16

8

4

2

1


查看完整回答
反對(duì) 回復(fù) 2021-04-20
?
森林海

TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個(gè)贊

'''


try:

     number = int(input('Enter a number:'))

     while number != 1:

          number = collatz(number)

except ValueError:

     print('Enter a valid integer')


def collatz(num):

    if num % 2 == 0:

        print(str(num // 2))

        return num // 2

    else:

        print(str(3 * num + 1))

        return (3 * num + 1)

'''


在這段代碼中,我匹配了它們的約束(整數(shù)約束)并返回了值。我在try塊中使用了簡單的遞歸來獲取所需的輸出。


查看完整回答
反對(duì) 回復(fù) 2021-04-20
  • 3 回答
  • 0 關(guān)注
  • 192 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)