using System;using System.Collections.Generic;using System.Text;using System.Collections;namespace projecteuler014{ class Program { static int[] data = new int[1000001]; static void Main(string[] args) { F1(); } private static void F1() { Console.WriteLine(new System.Diagnostics.StackTrace().GetFrame(0).GetMethod()); DateTime timeStart = DateTime.Now; int maxLength = int.MinValue; int number = int.MinValue; for (int i = 1; i <= 1000000; i++) { data[i] = getChain(i); if (maxLength < data[i]) { maxLength = data[i]; number = i; } } Console.WriteLine("The longest chain contains " + maxLength + " items.\nThe number is " + number); Console.WriteLine("Total Milliseconds is " + DateTime.Now.Subtract(timeStart).TotalMilliseconds + "\n\n"); } /// <summary> /// 擷取鏈中所有元素相乘的結果 /// </summary> /// <param name="n"></param> /// <returns></returns> private static int getChain(long n) { int count = 1; while (n != 1) { if (n % 2 == 0) { n = n >> 1; } else { n = 3 * n + 1; } if (n < 1000000 && data[n] != 0) { return count + data[n]; } count++; } return count; } }}/*Void F1()The longest chain contains 525 items.The number is 837799Total Milliseconds is 346.544By GodMoon*/