ПредишенСледващото

Напиши рекурсивни и не-рекурсивни функции
че се отнася положително число аргумент
и връща цифров коренът на този номер. цифров
корен брой се изчислява както следва.
Съберете всички цифри от номера, а след това всички числа
количеството получена, и т.н. Процесът се повтаря, докато
все още резултатът не е едноцифрено число се получава чрез
(Фигура), която е цифров корена.

Нека започнем с не-рекурсивни версия.

Всички изходния код е както следва:

в основната си функция е достатъчно проста: за първи път руски локал (setlocale (LC_ALL, «руски»);), а след това ще бъде подканен да въведете номер и този брой се чете в индексът п от тип цяло число. След това печатни резултат от междинно съединение RootOfNumber функция (междинно съединение А).

Нека да го разгледа по-подробно.

Тя се пренася до цяло число, и докато тя съдържа повече от един знак (състояние, к> 9) функция покана за сгъване номера в рамките на номера. Тя се нарича с различни аргументи. Аз е к. На всяка итерация на цикъла е броят намалява, и рано или късно тя ще бъде по-малко от 10. Тогава функцията ще се върне.

Последната функция, която просто изчислява сумата от цифрите в броя:

Приема число N. Докато п е нула разделя че редица от 10 (корен), и се добавя останалата част от разделянето на сумата, след това разделя N при 10 отново, но този път не вече записани остатък на деление и цялата страна. Тъй като става кръг, рано или късно, този брой ще бъде нула.

Рекурсивни версия на една и съща функция:

Чипът рекурсивни функции, които тя нарича себе си в себе си. В този код, има допълнителна функция, която ще бъде в размер, но кода се съдържа в него. Т.е. първо на функцията служил няколко, за които е добре да се изчисли корена, а след това за се счита този брой да е сумата от цифрите и проверихме състояние рекурсия изход - ако даден номер е недвусмислена, т.е. по-малко от 10. Ако отговорът е да, тогава излиза от рекурсията Връща броя, или - отново се обади една и съща функция, но с новата сума.

Предишен текст на чл Превод: Разработване на Вашата първа Metrostyle приложения с помощта на C ++, C # или Visual Basic.Net

Следваща член C ++: Цезар шифър

Подкрепете проекта - споделете линка, благодаря!