1996 Canadian Computing Competition, Stage 1
Problem B: Divisibility by 11
Write a program which accepts as input a positive integer and checks, using the algorithm described below, to see whether or not the integer is divisible by 11. This particular test for divisibility by 11 was given in 1897 by Charles L. Dodgson (Lewis Carroll).
- As long as the number being tested has more than two digits,
form a new number by:
- deleting the units digit
- subtracting the deleted digit from the shortened number
- Leading zeroes are not considered part of the number and should not be printed.
As usual, the first number in the input indicates the number of positive integers that follow. Each positive integer has a maximum of 50 digits. You may assume no leading zeroes exist in the positive integers.
For each positive integer in the input, the output consists of a series of numbers formed as a digit is deleted and subtracted, followed by a message indicating whether or not the original number is divisible by 11. Outputs for different positive integers are separated by blank lines.
12345678901234567900 1234567890123456790 123456789012345679 12345678901234558 1234567890123447 123456789012337 12345678901226 1234567890116 123456789005 12345678895 1234567884 123456784 12345674 1234563 123453 12342 1232 121 11 The number 12345678901234567900 is divisible by 11.
Point Value: 5
Time Limit: 2.00s
Memory Limit: 16M
Added: Sep 28, 2008
- String Manipulation
C++03, PAS, C, ASM, C#, C++11
However, the input may contain up to 50 digits. There is no built-in integer type capable of handling numbers of that size.
If you'd like more specific help, consider making your indentation consistent so others can read it.
I don't think the number has to be more than 2 digits, because 22, 33, etc. are all divisible by 11. Am I right?