Добрый день. Помогите пожалуйста разобраться. Пытаюсь реализовать простенькую программку , но из за минимального опыта не могу решить даже такого рода задачи. Программка такого типа: необходимо написать программку которая запрашивает у пользователя число от 0 до 1000, если это число четное, то оно делится на два, если нет, то умножается на 3 и прибавляется единица, результат выводится на экран, после этого полученное число проверяется опять. И так до тех пор пока число n не уменьшится до единицы. Алгоритм сводится к n=1 для любого целого n. Подскажите, что мне необходимо изменить или добавить, чтобы программа заработала. Думаю, что неправильно организовал цикл. Заранее благодарен.
| Код | #include "stdafx.h" #include "locale.h" #include "conio.h" #include "iostream" using namespace std;
int value(int n);
int _tmain(int argc, _TCHAR* argv[]) { //_____________________________________________ setlocale(LC_CTYPE,".1251"); setlocale(LC_MONETARY,".1251"); //______________________________________________
int n,answer; answer=0; cout << "Введите число, которое больше 0, и меньше 1000: "; cin >> n; while (answer!=1) { answer= value(n); } cout <<"результат"<< answer <<endl;
getch(); return 0; }
int value(int n) { int x; x=0; if (!(n&1)) { x= n/2; return x; } else { x=((n*3)+1); return x; } }
|
|