Our server costs ~$56 per month to run. Please consider donating or becoming a Patron to help keep the site running. Help us gain new members by following us on Twitter and liking our page on Facebook!
Current time: May 24, 2024, 11:47 pm

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Project Euler
#26
RE: Project Euler
(July 4, 2016 at 4:47 am)SteelCurtain Wrote: Problem #17 was easy in theory, required a lot of debugging...

Code:
def main():
   tot = 0

   for i in range(1, 1001):
       n = str(i)
       
       if len(n) == 1: #one digit
           tot += ones('0', n[0])
       elif len(n) == 2: #two digits
           tot += tens(n[0], n[1]) + ones(n[0], n[1])
       elif len(str(i)) == 3: #three digits
           tot += hundreds(n[0], n[1], n[2]) + tens(n[1], n[2]) + ones(n[1], n[2])

       else: #add letters for 'one thousand'
           tot += 11

   print(tot)


def ones(tens, ones):
   if tens == '1':
       return 0
   else:
       if any(ones == x for x in ['1', '2', '6']):
           return 3
       elif any(ones == x for x in ['4', '5', '9']):
           return 4
       elif any(ones == x for x in ['3', '7', '8']):
           return 5
       else:
           return 0

def tens(tens, ones):
   if tens == '1':
       if any(ones == x for x in ['1', '2']):
           return 6
       elif any(ones == x for x in ['5', '6']):
           return 7
       elif any(ones == x for x in ['3', '4', '8', '9']):
           return 8
       elif ones == '7':
           return 9
       elif ones == '0':
           return 3
   elif any(tens == x for x in ['2', '3', '8', '9']):
       return 6
   elif any(tens == x for x in ['4', '5', '6']):
       return 5
   elif tens == '7':
       return 7
   else:
       return 0
   
def hundreds(hunds, tns, ons):
   if (tns == '0' and ons == '0'):
       return 7 + ones('0', hunds)
   else:
       return 10 + ones('0', hunds)

If you want to see my code, go to Page 8 in the corresponding thread and it should be the 15th post. Country is Australia, I'm right after the Chinese dude.
Reply



Messages In This Thread
Project Euler - by Grandizer - June 26, 2016 at 12:41 am
RE: Project Euler - by SteelCurtain - June 26, 2016 at 4:35 am
RE: Project Euler - by Grandizer - June 26, 2016 at 4:39 am
RE: Project Euler - by SteelCurtain - June 26, 2016 at 4:40 am
RE: Project Euler - by Grandizer - June 26, 2016 at 9:02 am
RE: Project Euler - by SteelCurtain - June 28, 2016 at 4:58 am
RE: Project Euler - by Grandizer - June 28, 2016 at 11:50 am
RE: Project Euler - by SteelCurtain - July 3, 2016 at 1:52 am
RE: Project Euler - by Grandizer - July 3, 2016 at 2:46 am
RE: Project Euler - by SteelCurtain - July 3, 2016 at 6:20 am
RE: Project Euler - by Grandizer - July 3, 2016 at 6:27 am
RE: Project Euler - by Grandizer - July 3, 2016 at 6:32 am
RE: Project Euler - by A Handmaid - July 3, 2016 at 6:37 am
RE: Project Euler - by Grandizer - July 3, 2016 at 7:37 am
RE: Project Euler - by SteelCurtain - July 3, 2016 at 7:44 am
RE: Project Euler - by Grandizer - July 3, 2016 at 7:57 am
RE: Project Euler - by A Handmaid - July 3, 2016 at 8:02 am
RE: Project Euler - by Grandizer - July 3, 2016 at 8:06 am
RE: Project Euler - by SteelCurtain - July 3, 2016 at 8:02 am
RE: Project Euler - by SteelCurtain - July 3, 2016 at 8:16 am
RE: Project Euler - by Grandizer - July 3, 2016 at 8:58 am
RE: Project Euler - by SteelCurtain - July 3, 2016 at 10:24 pm
RE: Project Euler - by Grandizer - July 4, 2016 at 2:05 am
RE: Project Euler - by SteelCurtain - July 4, 2016 at 2:15 am
RE: Project Euler - by SteelCurtain - July 4, 2016 at 4:47 am
RE: Project Euler - by Grandizer - July 4, 2016 at 5:24 am
RE: Project Euler - by SteelCurtain - July 4, 2016 at 5:31 am
RE: Project Euler - by Grandizer - July 4, 2016 at 5:36 am
RE: Project Euler - by Grandizer - July 5, 2016 at 5:36 pm

Possibly Related Threads...
Thread Author Replies Views Last Post
  [Euler] Need clarification shadowdancer 11 3731 November 22, 2011 at 2:17 am
Last Post: shadowdancer



Users browsing this thread: 1 Guest(s)