C/C++

Почему не выводится часть кода?

#include <iostream>
using namespace std;

unsigned long Chisla(unsigned long number);

int main()
{
setlocale(LC_ALL, "Rus");
unsigned long number, numberf;
cout << "Введите число" << endl;
cin >> number;
numberf = Chisla(number);
cout << "Номер: " << numberf << endl;
system("pause");
return 0;
}

unsigned long Chisla(unsigned long number) {
if ((number == 1) || (number == 2))
{
cout<< (number);
}
else
{
cout << (Chisla(number - 1) + Chisla(number - 2));
cout << "/";
cout << (Chisla(number - 2) + Chisla(number - 4));
}

}
Итог: вводим любое число например 7
Выводит: 21
Должно выводить: 21/13
Тип функции не void, значит в её логическом конце должна быть инструкция return и какое-то значение. В данном случае значение типа unsigned long.

Я попробовал изменить код. Но он выводит не тот результат, что в у вас. Подумайте теперь, что в нём нужно изменить.

#include <iostream>
using namespace std;

unsigned long Chisla(unsigned long number);

int main()
{
setlocale(LC_ALL, "Rus");
unsigned long number, numberf;
cout << "Введите число" << endl;
cin >> number;
numberf = Chisla(number);
cout << "Номер: " << numberf << endl;
system("pause");
return 0;
}

unsigned long Chisla(unsigned long number) {
unsigned long n;
if ((number == 1) || (number == 2))
{
cout<< (number) << endl;
n = number;
}
else
{
cout << (number - 1) + (number - 2);
cout << "/";
cout << (number - 2) + (number - 4) << endl;
n = (number - 1) + (number - 2);
if((number - 1) + (number - 2) != 0)
n /= ((number - 1) + (number - 2));
}
return n;
}
Вова Шмырин
Вова Шмырин
74 278
Лучший ответ
а что хотите подсчитать? Как это другой вопрос
Д*
Дмитрий ***
21 700
Дмитрий *** рекурсия хотелось бы, но... и выводит ХРЕНЬ, но не 21
Функция Chisla ничего не возвращает, но код явно пытается использовать ее результат.

Chisla(7-4) = Chisla(3) в ней идет вызов Chisla(3-4) и из-за переполнения получаем Chisla(4294967295)

P.s. транслит - это плохо
Дмитрий *** рекурсия налицо но ЧТО хотели подсчитать... По -моему искали общий множитель, но не факт