Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Microsoft .NET

  Все выпуски  

RFpro.ru: Microsoft .NET


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты по данной тематике

Асмик Гаряка
Статус: Советник
Рейтинг: 10872
∙ повысить рейтинг »
Micren
Статус: Профессор
Рейтинг: 1784
∙ повысить рейтинг »
Александр Чекменёв
Статус: Академик
Рейтинг: 1437
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Microsoft .NET : C#

Номер выпуска:247
Дата выхода:03.06.2013, 15:30
Администратор рассылки:Alexey G. Gladenyuk (Управляющий)
Подписчиков / экспертов:55 / 26
Вопросов / ответов:1 / 2

Консультация # 187396: Уважаемые эксперты! Пожалуйста помогите: Преподаватель сказал что не увидел функции для факториала (отдельная, вне main, с параметром). Задача: Вычислить Вычисление факториала числа оформите в виде подпрограммы. ...


Консультация # 187396:

Уважаемые эксперты! Пожалуйста помогите:
Преподаватель сказал что не увидел функции для факториала (отдельная, вне main, с параметром).

Задача:
Вычислить Вычисление факториала числа оформите в виде подпрограммы.

Дата отправки: 30.05.2013, 18:45
Вопрос задал: Ушаков Антон Сергеевич (Посетитель)
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Катаев Василий Николаевич (1-й класс):

Здравствуйте, Ушаков Антон Сергеевич!

Вот то что получилось у меня

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace fact
{
class Program
{
static int f(int n)
{
if (n == 1) return 1;
return n * f(n - 1);
}
static void Main(string[] args)
{
int k;
Console.Write("Введите число n:");
k = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Результат: {0}", f(k));
Console.ReadKey();
}

}
}

Консультировал: Катаев Василий Николаевич (1-й класс)
Дата отправки: 30.05.2013, 19:38

5
нет комментария
-----
Дата оценки: 30.05.2013, 21:26

Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Micren (Профессор):

Здравствуйте, Ушаков Антон Сергеевич!

Код :
using System;

namespace ConsoleApplication1
{
	class Program
	{
		static void Main (string[] args)
		{
			try {
				Console.Write ("Введите число n:");
				long n = long.Parse (Console.ReadLine ());
				Console.Write ("Введите число k:");
				long k = long.Parse (Console.ReadLine ());			
			
				Console.WriteLine ("1.Количество сочетаний из {0} по {1}: {2}", n, k, c (n, k));
				Console.WriteLine ("2.Количество сочетаний из {0} по {1}: {2}", n, k, c2 (n, k));
			} catch (Exception ex) {
				Console.WriteLine ("{0}", ex.Message);
			} finally {			
				Console.ReadKey ();
			}
		}

		static long c (long n, long k)
		{
			if (n < 0 || k < 0 || n < k) {
				throw new ArgumentException ("Должны выполняться следующие условия: n>=0, k>=0, n>=k");
			}
			long result = 1;
			long t = 1;
			while (n>k) {
				checked {
					result = result * ++k / t++;
				}
			}
			return result;
		}

		static long c2 (long n, long k)
		{
			if (n < 0 || k < 0 || n < k) {
				throw new ArgumentException ("Должны выполняться следующие условия: n>=0, k>=0, n>=k");
			}
			return fact (n) / fact (k) / fact (n - k);
		}

		static long fact (long n)
		{
			long result = 1;
			if (n < 0) {
				throw new ArgumentException ("Аргумент для факториала должен быть больше нуля");
			}
			while (n>1) {
				checked {
					result *= n--;
				}
			}
			return result;
		}
	}
}


Пример работы:
Код :
Введите число n:10
Введите число k:4
1.Количество сочетаний из 10 по 4: 210
2.Количество сочетаний из 10 по 4: 210

Консультировал: Micren (Профессор)
Дата отправки: 30.05.2013, 20:46

5
нет комментария
-----
Дата оценки: 30.05.2013, 21:27

Рейтинг ответа:

НЕ одобряю +1 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!



В избранное