using System.Collections.Generic;
public static IEnumerable<double> GetTheList(int count, double target)
var random = new Random();
var list = Enumerable.Range(1, count).Select( i => random.NextDouble() );
var scale = target / sum;
var results = list.Select( n => Math.Round(n * scale, 2) ).ToList();
if (Math.Abs(results.Sum() - target) > 0.005) continue;
if (results.Min() < 0.01 || results.Max() > 99.9) continue;
Console.WriteLine("{0} iterations executed.", iteration);
public static void Main()
var list = GetTheList(28, 29.2);
Console.WriteLine("{0:0.0000}", n);