Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2015, 01:18   #1
valentin1488
Новичок
Джуниор
 
Регистрация: 04.12.2015
Сообщений: 1
По умолчанию Заполнение массива рандомными числами

Задача звучит примерно так: написать программу, которая выводит массив, сумма элементов которой равна заданному числу, а сами элементы массива находятся в заданных пределах. Например задана сумма 300, элемент массива заданы в пределах от 1 до 13, и должно получиться 13+9+5+3+12+11+...... = 300
valentin1488 вне форума Ответить с цитированием
Старый 05.12.2015, 17:48   #2
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Код:
using System;
using System.Linq;
using System.Collections.Generic;

namespace RandomGenerator
{
	static class Program
	{
		public static void Main(string[] args)
		{
			Console.WriteLine("Enter minValue:");
			var minValue = Convert.ToInt32(Console.ReadLine());
			Console.WriteLine("Enter to:");
			var maxValue = Convert.ToInt32(Console.ReadLine());
			
			if (minValue < 0)
				throw new ArgumentException("Wrong minValue");
			if (maxValue < 0 || maxValue <= minValue)
				throw new ArgumentException("Wrong maxValue");
			
			const int sum = 300;
			int tempSum = 0;
			var sumElements = Generate(minValue, maxValue).TakeWhile(item => sum > tempSum)
                              .Where(item => tempSum + item <= sum).Do(item => tempSum += item).ToArray();
			
			Console.WriteLine(string.Join("+", sumElements) + "={0}", sumElements.Sum());
			
			
			Console.Write("Press any key to continue . . . ");
			Console.ReadKey(true);
		}
		
		private static IEnumerable<int> Generate(int minValue, int maxValue)
		{
			var random = new Random();
			while (true)
				yield return random.Next(minValue, maxValue);
		}
		
		private static IEnumerable<T> Do<T>(this IEnumerable<T> sources, Action<T> action)
		{
			using (var enumerator = sources.GetEnumerator()) {
				while (enumerator.MoveNext()) {
					var current = enumerator.Current;
					action(current);
					yield return current;
				}
			}
		}
		
	}
}
Так?
Не давай организму поблажки, каждый день тренируй его в шашки..

Последний раз редактировалось Stilet; 05.12.2015 в 19:57.
Скарам вне форума Ответить с цитированием
Старый 05.12.2015, 17:58   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Да думаю автору все равно, только чтоб компилировалось и препод ничего не спросил. Главное, чтобы самому не пришлось париться и отвлекаться от 1488.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 06.12.2015, 01:12   #4
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

1488? Это что?)
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Старый 06.12.2015, 01:20   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

https://ru.wikipedia.org/wiki/14/88
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнение массива не повторяющимися числами. Armageddets Помощь студентам 6 29.04.2015 23:28
Как заполнить массив рандомными числами (Си) Sterben Помощь студентам 2 26.04.2015 19:51
Массив с рандомными числами С++ Arrioh Помощь студентам 4 11.04.2012 14:08
Заполнение массива неповторяющимися числами anybkarnak Общие вопросы C/C++ 8 30.11.2009 22:31
Заполнение массива числами Ermiss Общие вопросы C/C++ 7 25.11.2007 14:54