Labels

Thursday, October 20, 2011

How to find the registration number that sums up to your lucky number ?

DECLARE @StartNum INT, @EndNum INT, @Ones INT = 0, @Tens INT = 0, @Hundreds INT = 0, @Thousands INT = 0, @Sum INT, @LuckyNumber INT

-- Please set your inputs here. Both StartNum & EndNum Should be <= 4 digit number & Lucky Number between 1 to 9
-- Parameter Section BEGIN
SET @StartNum = 1
SET @EndNum = 9999
SET @LuckyNumber = 1
-- Parameter Section  END

DECLARE @Numbers TABLE
(
Number INT,
DigitSum INT
)

WHILE ( @StartNum  <= @EndNum )
    BEGIN
        IF (@StartNum < 10)
            BEGIN
                SET @Ones = @StartNum
            END
           
        ELSE IF (@StartNum >= 10 AND @StartNum < 100)
            BEGIN
                SET @Tens = LEFT(@StartNum,1)
                SET @Ones = RIGHT(@StartNum,1)
            END

        ELSE IF (@StartNum >= 100 AND @StartNum < 1000)
            BEGIN
                SET @Hundreds = LEFT(@StartNum,1)
                SET @Tens = RIGHT(LEFT(@StartNum,2),1)
                SET @Ones = RIGHT(@StartNum,1)
            END
           
        ELSE
            BEGIN
                SET @Thousands = LEFT(@StartNum,1)
                SET @Hundreds = RIGHT(LEFT(@StartNum,2),1)
                SET @Tens = RIGHT(LEFT(@StartNum,3),1)
                SET @Ones = RIGHT(@StartNum,1)
            END
   
    SET @Sum = @Thousands + @Hundreds + @Tens + @Ones
   
        IF (@Sum >= 10)
            BEGIN
                SET @Tens = LEFT(@Sum,1)
                SET @Ones = RIGHT(@Sum,1)
                    INSERT INTO @Numbers
                    SELECT @StartNum, @Tens + @Ones
            END
        ELSE
            BEGIN
                INSERT INTO @Numbers
                SELECT @StartNum, @Thousands + @Hundreds + @Tens + @Ones
            END

    SET @StartNum = @StartNum + 1

    END

SELECT Number FROM @Numbers WHERE DigitSum = @LuckyNumber

No comments:

Post a Comment