PROG0276 - Self-describing numbers

no tags 

A self-describing number is a number of which the digits in every position indicate the amount of times they occur in the number. Here, the positions of the digits are numbered from left to right starting with 0. The number 2020, for example, is a self-describing number of four digits. Position "0" has 2 as a value and there are a total of 2 zeroes in the number. Position 1 has 0 as a value, 1 doesn't occur in the number. Position 2 has value 2 and the digit occurs twice in the number. Lastly, position 3 has 0 as a value. 3 does not occur in 2020.

Assignment

Write a function selfdescribing to which a number $n \in \mathbb{N}$ must be given as an argument. The function must print a Boolean value as a result, indicating whether the number is self-describing or not. 

Example

>>> selfdescribing(1210)
True
>>> selfdescribing(1110)
False
>>> selfdescribing(2020)
True
>>> selfdescribing(21200)
True

Een zelfbeschrijvend getal is een getal waarvan het cijfer op elke positie aangeeft hoeveel keer dat cijfer voorkomt in het getal. Hierbij worden de cijferposities van links naar rechts genummerd vanaf 0. Het getal 2020 is bijvoorbeeld een zelfbeschrijvend getal van vier cijfers. Positie "0" heeft waarde 2 en er komen twee nullen voor in het getal. Positie "1" heeft waarde 0 omdat er geen enen in het getal voorkomen. Positie "2" heeft waarde 2 en het cijfer twee komt inderdaad twee keer voor in het getal. Tenslotte heeft positie "3" waarde 0 en het cijfer drie komt inderdaad niet voor in het getal.

Opgave

Schrijf een functie zelfbeschrijvend waaraan een getal $n \in \mathbb{N}$ als argument moet doorgegeven worden. De functie moet een Booleaanse waarde als resultaat teruggeven, die aangeeft of het gegeven getal zelfbeschrijvend is of niet.

Voorbeeld

>>> zelfbeschrijvend(1210)
True
>>> zelfbeschrijvend(1110)
False
>>> zelfbeschrijvend(2020)
True
>>> zelfbeschrijvend(21200)
True


Added by:Peter Dawyndt
Date:2012-08-27
Time limit:10s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:PY_NBC
Resource:None