Problème
Numérotez les chiffres de n en partant de la gauche, en commençant à 1. Élevez chaque chiffre à la puissance de sa position, puis additionnez les résultats. Pour 352, cela donne 3¹ + 5² + 2³. Un chiffre zéro ajoute 0.
Implémentez digit_power_sum(n).
Entrée
n : Un entier positif.
Sortie
Retournez la somme des chiffres ainsi puissancés.
Contraintes
1 ≤ n ≤ 1 000 000 000
Exemples
Entrée :
n = 352
Sortie attendue :
expected = 36
Entrée :
long long n = 352;
Sortie attendue :
long long expected = 36;
Entrée :
long n = 352;
Sortie attendue :
long expected = 36;
Explication
3¹ + 5² + 2³ = 3 + 25 + 8 = 36.
Entrée :
n = 89
Sortie attendue :
expected = 89
Entrée :
long long n = 89;
Sortie attendue :
long long expected = 89;
Entrée :
long n = 89;
Sortie attendue :
long expected = 89;
Explication
8¹ + 9² = 8 + 81 = 89, le nombre lui-même.
Comment l'aborder
Essayez d'abord seul, puis ouvrez les indices un par un.
Indice 1
Parcours le nombre chiffre par chiffre de gauche à droite et garde la position de chaque chiffre.
Indice 2
Convertis le nombre en chaîne, ou détermine autrement l’index de gauche à droite avant de combiner chaque chiffre avec sa position.
Indice 3
Souviens-toi qu’un chiffre 0 n’apporte rien, mais que sa position compte quand même pour l’exposant.
Complexité attendue
temps O(d), espace supplémentaire O(1)