![](https://static.wixstatic.com/media/d683fc_73505168a8754087811a83d8d6d1f09e~mv2.jpg/v1/fill/w_288,h_141,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/d683fc_73505168a8754087811a83d8d6d1f09e~mv2.jpg)
Fibonacci Sequence Algorithm
C# / Unity
using System;
using System.Globalization;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
public class FibonacciSequence : MonoBehaviour
{
public TextMeshProUGUI outputText;
public TMP_InputField amountInputField;
private TMP_InputField startingInputField;
private int startingInput, amountInput;
private void Start()
{
startingInputField = GetComponent<TMP_InputField>();
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.Return))
{
//Check if numbers were inputted or not
if (int.TryParse(startingInputField.text, NumberStyles.Number, CultureInfo.CurrentCulture.NumberFormat, out startingInput) &&
int.TryParse(amountInputField.text, NumberStyles.Number, CultureInfo.CurrentCulture.NumberFormat, out amountInput))
{
//Display Length Safety Check
if (amountInput <= 30)
{
//Get the sequence
List<long> sequenceList = WriteSequence(startingInput, amountInput);
//Create a list for string converstion
List<string> sequenceListConverted = new List<string>();
//Loop through the numbers and convert them to string, with correct format
foreach (long number in sequenceList)
{
sequenceListConverted.Add(number.ToString("#,##0"));
}
//Convert the list to a string with seperations for display
string sequence = string.Join(" | ", sequenceListConverted.ToArray());
//Display results
outputText.text = "The Fibonacchi sequence starting with '" + startingInput.ToString("#,##0") + "' executing '" + amountInput.ToString("#,##0") + "' times is \n"
+ sequence;
}
//Tell user the length input is too large
else
{
outputText.text = "Sequence length too long to display.";
}
}
//Tell user input was invalid
else
{
outputText.text = "No int (Numbers) were entered, \none was too big, or only one number was entered.";
}
//Reset input fields
startingInputField.text = "";
amountInputField.text = "";
}
}
//Using a long just to display larger numbers
public List<long> WriteSequence(int startingNumber, int amountNumber)
{
//Convert input to long for computing
long tempNum = Convert.ToInt64(startingNumber);
//Creating output list
List<long> output = new List<long>();
//Adding beginning of sequence
output.Add(0);
output.Add(startingNumber);
//Loop through the sequence
for (int i = 0; i < amountNumber; i++)
{
//Add current iteration to previous
tempNum += output[i];
//Add new iteration to list
output.Add(tempNum);
}
return output;
}
}