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

Home > General > Word Problems
Numbered Letters IV (Posted on 2015-10-26) Difficulty: 3 of 5
Suppose A=1, B=2, C=3, ..., Z=26.
1. What numbers add up to their own values if "and" is used in numbers greater than 100 but not divisible by 100?
2. What numbers add up to their own values if "and" is not used in numbers greater than 100 but not divisible by 100?

No Solution Yet Submitted by Math Man    
No Rating

Comments: ( Back to comment list | You must be logged in to post comments.)
Solution computer solution | Comment 1 of 2
DECLARE FUNCTION verify! (s1$, s2$)
DECLARE SUB EnterNum ()
DECLARE SUB ProcPiece (piece$, MajorPower!)
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$
'DO
CLS
FOR n = 1 TO 150000
    ' IF n / 10 = INT(n / 10) THEN PRINT n;
    num$ = LTRIM$(RTRIM$(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
    name$ = UCASE$(name$)
    '  PRINT name$;
    DO
        i = verify(name$, "ABCDEFGHIJKLMNOPQRSTUVWXYZ")
        IF i THEN name$ = LEFT$(name$, i - 1) + MID$(name$, i + 1)
    LOOP UNTIL i = 0
    ' PRINT "  "; name$
    tot = 0
    FOR i = 1 TO LEN(name$)
        ix = INSTR("ABCDEFGHIJKLMNOPQRSTUVWXYZ", MID$(name$, i, 1))
        IF ix > 0 THEN tot = tot + ix
    NEXT i
    IF tot = n THEN
        PRINT n
    END IF
NEXT
'LOOP


SUB ProcPiece (piece$, MajorPower)
piece = VAL(piece$)
n$ = ""
IF piece > 99 THEN
    n$ = unit$(piece \ 100) + " hundred "
    piece = piece MOD 100
    IF piece > 0 THEN n$ = n$ + "and " ' *************
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

FUNCTION verify (s1$, s2$)
FOR i = 1 TO LEN(s1$)
    IF INSTR(s2$, MID$(s1$, i, 1)) = 0 THEN verify = i: EXIT FUNCTION
NEXT
verify = 0
END FUNCTION

finds only 251 and 259 for "two hundred and fifty one" and "two hundred and fifty nine". Eliminating the line that adds the "and" results in no solutions at all.

  Posted by Charlie on 2015-10-26 15:37:59
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 (1)
Unsolved Problems
Top Rated Problems
This month's top
Most Commented On

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