对于循环和累加器模式

时间:2017-04-07 05:10:39

标签: python

一个古老的传说,一个聪明的人,当得到他想要的任何奖励时,要求他的第一个孙子收到1个硬币,他的第二个孙子收到的是第一个的两倍,第三个收到的是第二个的两倍,等等。最后一个孙子会收到多少钱币?孙子们会收到多少钱币?您的函数应该接受任意数量的孙子并返回一个解决这两个问题的声明。到目前为止我已经这样了

String str = "Nom for 3 Oscar";
Pattern pattern = Pattern.compile("\\w+\\s+\\w+\\s+(\\d+)\\s+\\w+");
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
    Log.d("Test", matcher.group(1));
}

如何列出每个大孩子有多少钱?

感谢帮助人员

def grandchild_coins(number_of_grand_children):# Not finished
    Coins=1
    for grand_child in range(number_of_grand_children):
        Coins=Coins*2
    return ' Grand child' + str(grand_child) + ' ' + str(Coins) + ' Coins'
   grandchild_coins(10)
   Out[33]: ' Grand child9 1024 Coins'

2 个答案:

答案 0 :(得分:0)

每次迭代都需要[SwaggerResponse(HttpStatusCode.OK)]语句(而不是最后只有print):

return

注意:这回答了你的问题,而不是你的家庭作业中的问题...

顺便说一下,你不需要循环来解决这个问题,一个简单的公式就存在......

答案 1 :(得分:0)

这是因为你只返回范围中的最后一个元素(grand_child将等于9 - 范围(10)意味着从0到9的迭代) 所以,我建议(保持密码):

def grandchild_coins(number_of_grand_children):
    Coins=1
    for grand_child in range(number_of_grand_children):
        if grand_child != 0: #where you need to keep 1 coinn for the first son
            Coins=Coins*2
        print(' Grand child' + str(grand_child + 1) + ' ' + str(Coins) + 'Coins')  
    return True

grandchild_coins(10)

输出:

 Grand child1 1Coins
 Grand child2 2Coins
 Grand child3 4Coins
 Grand child4 8Coins
 Grand child5 16Coins
 Grand child6 32Coins
 Grand child7 64Coins
 Grand child8 128Coins
 Grand child9 256Coins
 Grand child10 512Coins