Порядковый номер Collatz с использованием C#
Чтобы получить последовательность Коллатца из числа, если оно четное, разделите его на два, а если нечетное, умножьте на три и добавьте один. Продолжайте операцию над результатом предыдущей операции, пока число не станет 1.
Как вы видите внизу кода, я попытался перечислить число в строке, и после того, как строка будет напечатана, я хочу получить другое значение с помощью консоли.ReadLine (); но он не делает того, что я намеревался.
Не могли бы вы дать мне несколько советов или подсказок, чтобы я мог это исправить?
Спасибо, ребята.
Что я уже пробовал:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Exercise { class Program { static void Main(string[] args) { int sequenceNumber = Convert.ToInt32(Console.ReadLine()); List<int> list = new List<int>(); while (sequenceNumber>=1) { if (sequenceNumber == 1) { Console.WriteLine(1); sequenceNumber = Convert.ToInt32(Console.ReadLine()); } else if(sequenceNumber>1) { while (sequenceNumber>=1) { if (sequenceNumber == 1) { list.Add(sequenceNumber); } else if (sequenceNumber % 2 == 0) { list.Add(sequenceNumber); sequenceNumber = sequenceNumber / 2; } else if (sequenceNumber % 2 != 0) { list.Add(sequenceNumber); sequenceNumber = sequenceNumber * 3 + 1; } } list.ForEach(Console.WriteLine); foreach (int i in list) { Console.Write(i + " "); } }//else sequenceNumber = Convert.ToInt32(Console.ReadLine()); } //while--sequence number }//main } }
Patrice T
- но это не то, что я намеревался."
Это нам не информативно, мы не знаем, что вы имели в виду.
Расскажите нам, что он делает и почему это неправильно.