Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.50/22: Рейтинг темы: голосов - 22, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 18
1

Написать программу, которая читает неотрицательное целое число, рассчитывает и печатает его факториал

22.06.2013, 14:58. Показов 4553. Ответов 24
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Факториал неотрицательного целого числа n записывается как n! И определяется следующим образом N! = n*(n-1)*(n-2)*…… для n>=0;
Написать программу , которая читает неотрицательное целое число , рассчитывает и печатает его факториал.
 Комментарий модератора 
Запрещено дублировать тему в одном или нескольких разделах!
Дубль закрыт.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.06.2013, 14:58
Ответы с готовыми решениями:

Написать программу, которая читает неотрицательное целое число, рассчитывает и печатает его факториал
11. Факториал неотрицательного целого числа n записывается как n! И определяется следующим...

Задано неотрицательное целое число в двоичной системе счисления. Требуется перевести его в десятичную.
Задано неотрицательное целое число в двоичной системе счисления. Требуется перевести его в...

Написать программу, которая вводит номер некоторого года и печатает его название по старояпонскому календарю
Задание )В старояпонском календаре был принят 12-летний цикл. Годы внутри цикла носили названия...

Написать программу, которая подсчитывает: является ли заданное целое число четным (нечетным)
Написать программу, которая подсчитывает: является ли заданное целое число четным (нечетным)

24
Администратор
Эксперт .NET
9602 / 4744 / 761
Регистрация: 17.04.2012
Сообщений: 9,592
Записей в блоге: 14
22.06.2013, 15:19 2
Этот вопрос был на 3 темы ниже, смотрите внимательней. Вот ответ
0
687 / 601 / 139
Регистрация: 08.05.2009
Сообщений: 1,098
22.06.2013, 15:22 3
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int n = Convert.ToInt32(Console.ReadLine());
            if (n < 0)
            {
                Console.WriteLine("have to input non negative number");
            }
            else
            {
                if (n == 1)
                {
                    Console.WriteLine("P=1");
                }
                else
                {
                    int p = 1;
                    for (int i = 2; i <= n; i++)
                    {
                        p *= i;
                    }
                    Console.WriteLine("P={0}", p);
                }
            }
0
313 / 176 / 25
Регистрация: 30.04.2011
Сообщений: 1,469
22.06.2013, 15:22 4
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 long f=1;
            int n;
            n = int.Parse(Console.ReadLine());
            if (!(n >= 0))
            {
                Console.WriteLine("'N' must be >= 0");
            }
            else
            {
                for (int i = 1; i != n; i++)
                {
                    f *= (n - i);
                }
                f *= n;
                Console.WriteLine(f);
            }
0
2664 / 2239 / 240
Регистрация: 03.07.2012
Сообщений: 8,141
Записей в блоге: 1
22.06.2013, 20:58 5
Зациклится и вылетет при n=0
0
313 / 176 / 25
Регистрация: 30.04.2011
Сообщений: 1,469
22.06.2013, 21:06 6
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 long f=1;
            int n;
            n = int.Parse(Console.ReadLine());
            if (!(n >= 0))
            {
                Console.WriteLine("'N' must be >= 0");
            }
            else
            {
                for (int i = 1; i <= n-1; i++)
                {
                    f *= (n - i);
                }
                f *= n;
                Console.WriteLine(f);
            }
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
22.06.2013, 22:23 7
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using System;
using System.Collections.Generic;
using System.Linq;
 
 
namespace ConsoleApplication22
{
    internal class Program
    {
        private static void Main()
        {
            int i = 0;
            foreach(double d in Fac(20))
               Console.WriteLine("{0}! = {1}", ++i, d);
            Console.ReadLine();
        }
 
 
        private static IEnumerable<double> Fac(int num) //Только один цикл (за счет yield)
        {
            double currentNumber = 1;
            for (int i = 1; i <= num; i++)
                yield return currentNumber *= i;
        }
    }
}
Добавлено через 58 секунд

Не по теме:

@sniper_lunev,

C#
1
 if (!(n >= 0))
гениальная запись. В мемориз

1
Диармайд
24.06.2013, 17:24 8
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System;
 
namespace Факториал
{
    class Program
    {
        static void Main()
        {
            int N, i, n=0;
            N = int.Parse(Console.ReadLine());
            if (N <= 0) Console.WriteLine("Ошибка. N меньше или равно 0");
            else
            {
                for (i = 1; i <= N; i++) 
                    n = i * (i - 1) * (i - 2);
                    Console.WriteLine("N!(" + N + ") = " + n);
                }
 
              Console.ReadLine();
        }
    }
}
54 / 54 / 23
Регистрация: 02.09.2009
Сообщений: 285
24.06.2013, 18:19 9
Диармайд, и что посчитает ваше решение?
0
freeba
24.06.2013, 18:58
  #10

Не по теме:

Цитата Сообщение от Psilon Посмотреть сообщение
@sniper_lunev, Код C#1
*if (!(n >= 0))гениальная запись. В мемориз
И подпись под сообщением отражает суть...

0
132 / 111 / 48
Регистрация: 08.02.2013
Сообщений: 621
24.06.2013, 21:54 11
Немного рекурсии

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 class Program
    {
        static void Main(string[] args)
        {
            Factorial ob1 = new Factorial();
            int x;
            bool flag;
            Console.WriteLine("Введие число");
            flag = int.TryParse(Console.ReadLine(), out x);
            if (flag)
                if(x>0&x!=0)
                Console.WriteLine("Факториал "+x+" это "+ob1.Factor(x));
                    else
                    Console.WriteLine("Вы ввели отрицательное число или 0");
            else
                Console.WriteLine("Вы ввели не верное значение \"n\"");
            Console.Read();
        }
    }
    class Factorial
    {
 
        public int Factor(int n)
        {
           
            if (n == 1) return 1;
            n = Factor(n - 1) * n;
            return n;
            
 
        }
    }
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
24.06.2013, 21:59 12
@Scrypto, тогда уж:
C#
1
2
3
4
public uint Fac(uint n)
{                    
   return n > 0 ? n*Fac(n - 1) : 1; 
}
2
56 / 56 / 14
Регистрация: 06.04.2012
Сообщений: 185
25.06.2013, 15:03 13
человеку нужно реализовывать строковую арифметику, "неотрицательное целое число" это может быть и 99999!, а что произойдет при расчете с типом переменной int?
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
25.06.2013, 15:13 14
@nike00, где это написано, покажи.
0
56 / 56 / 14
Регистрация: 06.04.2012
Сообщений: 185
25.06.2013, 15:28 15
"неотрицательное целое число", 99999 это отрицательное? или может быть не целое? С годик назад мне аналогичное поручали когда озаботился тем что бы наконец получить таки диплом бакалавтра(бросил после 3 курсов), поэтому одно место и подсказазывает, что нужно делать строковую арифметику
0
Неадекват
1492 / 1230 / 246
Регистрация: 02.04.2010
Сообщений: 2,789
25.06.2013, 15:33 16
Цитата Сообщение от nike00 Посмотреть сообщение
строковую арифметику
Что за зверь?
0
56 / 56 / 14
Регистрация: 06.04.2012
Сообщений: 185
25.06.2013, 15:37 17
число в строку, строку - в массив, а дальше как на листочке учили умножать в столбик
на выходе стринг, которому уже нету разницы сколько в нем будет элементов
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
25.06.2013, 15:41 18
@freeba, человек длинную арифметику реализует через строку, норм так, бывают более запущенные случаи

@nike00, ну окей, посчитай мне факториал от ulong.MaxValue. Со своей строковой арифметикой. Оно тоже целое и неотрицательное.
0
56 / 56 / 14
Регистрация: 06.04.2012
Сообщений: 185
25.06.2013, 15:47 19
Зачем мне что-то считать? Я предложил вариант направления мыслей давшего задачу для создателя темы. Если что-то не нравится в моем предложении - так создайте новую тему назовите его "как правильно считать факториал" и не нужно флудить в тему.
0
Master of Orion
Эксперт .NET
6098 / 4954 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
25.06.2013, 15:50 20
@nike00, нечего морочить голову человеку, которому дали задание "для начинающих" не имеющим к делу отношения фигней. Если дали ТЗ "вычислить факториал" - то это вычисление факториала от числа, которое помещается в int или long, если только в задании явно не сказано другого.

Не по теме:

Мне интересно, вы много проектов закрыли с таким отношением "да заказчик дурак, не понимает, это же так круто, сделаю-ка я по-своему. А аналитик ваще идиот, зачем там кнопка, пусть лучше будет чекокс, так круче!"

0
25.06.2013, 15:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.06.2013, 15:50
Помогаю со студенческими работами здесь

Написать программу, которая рассчитывает значение выражения с использованием оператора for
Написать прогу, которая рассчитывает значение выражения с использованием оператора for. Запрещается...

Дайте комментарии к программе, которая рассчитывает факториал числа
Программа использует небезопасный код, рассчитывает факториал числа 12 и выполняет операции...

Дано целое неотрицательное число N. Найти число, составленное теми же десятичными цифрами, что и N, но в обрат
Дано целое неотрицательное число N. Найти число, составленное теми же десятичными цифрами, что и N,...

Написать программу, которая считывает целое число, определяет и печатает, четное оно или нечетное
Привет,народ!Помогите написать программу ,которая считывает целое число, определяет и печатает, ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru