2015-11-23 6 views
0

Je peux obtenir la réponse des cubes mais je ne sais pas vraiment où aller pour avoir la fonction de retourner la réponse et de l'ajouter à une somme! Que dois-je faire pour le faire continuer à ajouter pour obtenir un total?Comment ajouter la somme de cubes en utilisant une fonction en python?

def sumNCubes(n): 
    for i in range(n) 
    return (n-1)**3 
def main(): 
    number = int(raw_input("What number do you want to find the sum of cubes for?")) 
    n = number + 1 
    for i in range(number): 
     n = n - 1 
    print "The result of the sums is:", sumNCubes(n) 
main() 
+0

Il doit y avoir deux points après votre boucle 'for'. Veuillez corriger cela. –

+0

@BhargavRao autant que je suis d'accord avec vous, je pense que vous êtes d'accord quand je dis que ce n'est pas la seule chose qui doit changer: –

+0

@RNar Absolument. Il y a plus dedans. Sinon, j'aurais écrit une réponse. –

Répondre

0

Vous pouvez simplement faire quelque chose comme ceci:

def sumNCubes(n): 
    return sum(i**3 for i in range(1,n+1)) 

qui utilise une compréhension de la liste pour le numéro de cube dans une plage de 1-n + 1 (1-n ne comprendra pas n) puis utilisations python construit en sum fonction pour faire la somme de tous les cubes.

alors vous pourriez juste passer dans votre entrée et l'imprimer:

def main(): 
    number = int(raw_input("What number do you want to find the sum of cubes for?")) 
    #this doesn't do anything but change n to 0 
    #for i in range(number): 
    # n = n - 1 
    print "The result of the sums is:", sumNCubes(number) 
main() 

avec entrée, par exemple, 5, cela retourne:

>>> sumNCubes(5) 
225 
+0

Merci! donc la boucle for me gâcher tout le temps haha ​​ – poop

+0

oui, vous n'utilisiez pas pour les boucles correctement –

0

La réponse est très simple. Cela sera donné par une approche récursive.

Voici la fonction de trouver somme des nombres N et vous étiez très proche à obtenir ce

def sumNcubes(n): 
    if (n == 1): 
    return 1 
    else: 
    return n**3 + sumNcubes(n-1) 

>>>sumNcubes(6) 
441