All about flooble | fun stuff | Get a free chatterbox | Free JavaScript | Avatars    
perplexus dot info

Home > Numbers
Sums and Letters (Posted on 2005-04-27) Difficulty: 2 of 5
I wrote down five different two-digit numbers:

  • My age
  • My house number
  • The sum of those first two numbers
  • The difference between those first two numbers
  • Half of one of those first four numbers

I chose to write down the names of the numbers in letters rather than use digits (e.g. "thirty six").
Surprisingly, I noticed that each of the five numbers had the same number of letters in its name.

What were the last three numbers I wrote?

No Solution Yet Submitted by Sam    
Rating: 3.0000 (2 votes)

Comments: ( Back to comment list | You must be logged in to post comments.)
Solution the computer solution | Comment 2 of 14 |

Using already-written routines for finding the spelled-out names for the numbers:

DECLARE SUB ProcPiece (piece$, MajorPower!)
CLS
DATA one,two,three,four,five,six,seven,eight,nine
DATA ten,eleven,twelve,thirteen,fourteen,fifteen,sixteen,seventeen
DATA eighteen,nineteen
DATA twenty,thirty,forty,fifty,sixty,seventy,eighty,ninety
DATA thousand,million,billion,trillion,quadrillion,quintillion,sextillion
DIM SHARED unit$(19), ten$(10), major$(7)
FOR i = 1 TO 19
  READ unit$(i)
NEXT
FOR i = 2 TO 9
  READ ten$(i)
NEXT
FOR i = 1 TO 7
  READ major$(i)
NEXT
DIM SHARED name$, num$
FOR n1 = 10 TO 89
  FOR n2 = n1 + 10 TO 99 - n1
   n3 = n1 + n2: n4 = n2 - n1
   IF n4 <> n1 THEN
    n = n1: GOSUB evaluate: val1 = tVal
    n = n2: GOSUB evaluate: val2 = tVal
    n = n3: GOSUB evaluate: val3 = tVal
    n = n4: GOSUB evaluate: val4 = tVal
    IF val1 = val2 AND val2 = val3 AND val3 = val4 THEN
      good = 0
      n = n1 / 2: IF n = INT(n) THEN GOSUB evaluate: IF tVal = val1 THEN good = 1: n5 = n1 / 2
      n = n2 / 2: IF n = INT(n) THEN GOSUB evaluate: IF tVal = val1 THEN good = 1: n5 = n2 / 2
      n = n3 / 2: IF n = INT(n) THEN GOSUB evaluate: IF tVal = val1 THEN good = 1: n5 = n3 / 2
      n = n4 / 2: IF n = INT(n) THEN GOSUB evaluate: IF tVal = val1 THEN good = 1: n5 = n4 / 2
      IF good THEN
        PRINT n1, n2, n3, n4, n5
      END IF
    END IF
   END IF
  NEXT n2
NEXT n1
END

evaluate:
        num$ = LTRIM$(STR$(n))
        IF num$ = "0" THEN
                name$ = "zero"
        ELSE
                name$ = ""
                MajorPower = 0
                DO
                        l = LEN(num$): IF l > 3 THEN l = 3
                        piece$ = RIGHT$(num$, l)
                        num$ = LEFT$(num$, LEN(num$) - l)
                        CALL ProcPiece(piece$, MajorPower)
                        MajorPower = MajorPower + 1
                LOOP WHILE LEN(num$) > 0
        END IF
        tVal = 0
        FOR i = 1 TO LEN(name$)
          lt$ = MID$(name$, i, 1)
          IF INSTR("abcdefghijklmnopqrstuvwxyz", lt$) > 0 THEN
            tVal = tVal + 1
          END IF
        NEXT
RETURN

SUB ProcPiece (piece$, MajorPower)
  piece = VAL(piece$)
  n$ = ""
  IF piece > 99 THEN
    n$ = unit$(piece \ 100) + " hundred "
    piece = piece MOD 100
  END IF
  IF piece > 19 THEN
    n$ = n$ + ten$(piece \ 10)
    piece = piece MOD 10
    IF piece > 0 THEN n$ = n$ + "-":  ELSE n$ = n$ + " "
  END IF
  IF piece > 0 THEN n$ = n$ + unit$(piece) + " "
  IF n$ > "" THEN name$ = n$ + major$(MajorPower) + " " + name$
END SUB

finds

21            65            86            44            22

so the last three numbers were 86, 44 and 22.  The first two were 21 and 65 in one or the other order.

Edited on April 27, 2005, 2:00 pm

Edited on April 27, 2005, 2:00 pm
  Posted by Charlie on 2005-04-27 13:49:17

Please log in:
Login:
Password:
Remember me:
Sign up! | Forgot password


Search:
Search body:
Forums (0)
Newest Problems
Random Problem
FAQ | About This Site
Site Statistics
New Comments (0)
Unsolved Problems
Top Rated Problems
This month's top
Most Commented On

Chatterbox:
Copyright © 2002 - 2024 by Animus Pactum Consulting. All rights reserved. Privacy Information