Συζήτηση
Γεια χαρά, Επισκέπτης
Όνομα χρήστη: Κωδικός: Να με θυμάσαι

ΘΕΜΑ: harshad numbers

harshad numbers 7 Χρόνια 9 Μήνες πριν #4179

  • Theo
  • Το Άβαταρ του/της Theo
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 249
  • Ληφθείσες Ευχαριστίες 70
Πριν λίγες μέρες ρώτησε κάποιος πως με την python θα βρει τους αριθμούς harshad en.wikipedia.org/wiki/Harshad_number στο διάστημα 1-1000,
και αφού διάβαζα πρόσφατα για map reduce filter κλπ έφτιαξα μια λύση και την μοιράζομαι εδώ μαζί σας.

Το πρώτο πράγμα που έχουμε να κάνουμε είναι να φιλτράρουμε τους αριθμούς που θέλουμε και να κρατήσουμε τους harshad τι καλύτερο λοιπόν
my_data=filter(is_harshad, range(1,1001))
πρέπει να γράψουμε τι κάνει η is_harshad
def is_harshad(a):
  return not a%add_digits(a)#εφόσον το a%add_digits(a) θα είναι 0 (default False) το not 
θα είναι True μπορούμε εναλλακτικά να γράψουμε return a%add_digits(a)==0
 
και τέλος η add_digits
def add_digits(a):
  return sum(int(i) for i in str(a))
Με λίγες γραμμές κώδικα χωρίς πολλά if και for παίρνουμε τη λύση μας.
Τελευταία διόρθωση: 7 Χρόνια 9 Μήνες πριν από Theo.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.536 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

Λίστα Ταχυδρομείου