C#:实现Recaman雷卡曼数序列算法
using System.Collections.Generic;
using System.Numerics;
namespace Algorithms.Sequences
{
public class RecamansSequence : ISequence
{
public IEnumerable<BigInteger> Sequence
{
get
{
yield return 0;
var elements = new HashSet<BigInteger> { 0 };
var previous = 0;
var i = 1;
while (true)
{
var current = previous - i;
if (current < 0 || elements.Contains(current))
{
current = previous + i;
}
yield return current;
previous = current;
elements.Add(current);
i++;
}
}
}
}
}
该博文为原创文章,未经博主同意不得转。
本文章博客地址:https://cplusplus.blog.youkuaiyun.com/article/details/126702991