Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- //Write a program to calculate n! for each n in the range [1..100]. Hint: Implement first a method that multiplies a number represented as array of digits by given integer number.
- class CalculateN
- {
- private static List<int> FactN(int index)
- {
- int[] mulIndex = new int[] { 1 };
- List<int> currentNum = new List<int> { 1 };
- List<int> number = new List<int>();
- int remainder = 0;
- int multiple = 0;
- for (int mulCount = 0; mulCount <= index; mulCount++)
- {
- mulIndex[0] = mulCount + 1;
- number = new List<int>(currentNum);
- remainder = 0;
- currentNum.Clear();
- for (int numCount = 0; numCount < number.Count; numCount++)
- {
- multiple = number[numCount] * mulIndex[0] + remainder;
- if (multiple > 9)
- {
- int devider = multiple % 10;
- currentNum.Add(devider);
- remainder = multiple / 10;
- if (numCount == number.Count - 1 && remainder > 0)
- {
- if (remainder > 9)
- {
- while (true)
- {
- int devRemainder = remainder % 10;
- currentNum.Add(devRemainder);
- remainder /= 10;
- if (remainder == 0)
- {
- break;
- }
- }
- }
- else
- {
- currentNum.Add(remainder);
- }
- }
- }
- else
- {
- currentNum.Add(multiple);
- remainder = 0;
- }
- }
- }
- return currentNum;
- }
- static void Main()
- {
- int n = int.Parse(Console.ReadLine());
- int[] factorial = FactN(n - 1).ToArray();
- for (int i = factorial.Length - 1; i >= 0; i--)
- {
- Console.Write(factorial[i]);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement