Cześć, napotkałem na takie zadanie:
Liczba jest podzielna przez 11, jeżeli wartość bezwzględna z różnicy sumy jej cyfr stojących na miejscach parzystych i sumy jej cyfr stojących na miejscach nieparzystych dzieli się przez 11. Wykorzystując podaną własność napisz rekurencyjną funkcję sprawdzającą, czy dana liczba większa od 0 jest podzielna przez 11 wobec faktu, że jedyną liczbą jednocyfrową podzielną przez 11 jest zero. Funkcja ma zwrócić 1, jeżeli liczba jest podzielna przez 11, 0 w przeciwnym przypadku. Prototyp funkcji powinien wyglądać następująco:
int is_divisible_by_11(int number);
Napisz program, który pobierze od użytkownika liczbę i sprawdzi, wykorzystując przygotowaną wcześniej funkcję, czy jest ona podzielna przez 11 czy nie. Program ma wypisać komunikat "YES" lub "NO". W przypadku wprowadzenia błędnych danych program powinien wyświetlić komunikat Incorrect input i niezwłocznie zakończyć działanie z kodem błędu 1.
Uwaga W programie nie wolno używać zmiennych globalnych.
Uwaga W programie nie wolno używać słowa kluczowego static.
Uwaga W programie nie wolno używać pętli.
Uwaga W programie nie wolno korzystać z biblioteki math.
Uwaga W programie nie wolno korzystać z operatora modulo oraz dzielenia, za wyjątkiem dzielenia przez 10.
Przykładowe wejście:
Podaj liczbę: 121
Przykładowe wyjście:
YES
Dwa zapytania mam co do tego zadania:
-jak mogę zastąpić operację modulo?
- jak mogę przechować z każdą kolejną rekurencją pod postacią is_divisible_by_11(number/10) informację o danej liczbie i o jej indeksie? Niestety nie mogę przekazać do każdego wywoływania rekurencyjnego tablicy ani jakiejkolwiek informacji o "size".