Софтуерно Инженерство
Loading...
pavelp avatar pavelp 1 Точки

14. Factorial Trailing Zeroes

Опитах се да реша задачата без стрингове, кода ми минава в дъдж, но това е защото си го нагласих. 

https://github.com/PavelPetkov/Methods-Defining-and-Calling-Methods

Ще се радвам да видя и дуги решения

using System;
using System.Numerics;
                    
public class Factorial
{
    public static void Main()
    {
        
        int num = int.Parse(Console.ReadLine());
        BigInteger factorial = FactorialCalculation(num);
        Console.WriteLine(CountZeros(factorial));
        
    }

    public static BigInteger FactorialCalculation(int num)
    {
        
        BigInteger factorial = 1;
        for(int i = 0; i<num; i++)
        {   
        factorial *=(num-i);
        }
        
        return factorial;
    }
        public static int CountZeros(BigInteger factorial)
    {
            int CountZero = 1;            
            while( factorial % (BigInteger) Math.Pow(10,CountZero) == 0)
               { 
                    CountZero++;
               }
        
            if(CountZero<20){return CountZero-1;};                                          
                return CountZero+1;                                    
    }

}

 

Тагове:
0
Programming Fundamentals
k.sevov avatar k.sevov 993 Точки

На 28-ми ред трябва да е без "-1", защото сега цикъла ти се завърта веднъж по-малко в някои случаи (предполагам логиката е била, че няма как целия стринг да е от нули, но ти трябва още едно завъртане, за да ти принтира резултата накрая при "x0(0)" случай). Също така в самия цикъл искаме да премахваме само последния символ от стринга всеки път и формулата ти не работи за целта. Ето поправен вариант: https://pastebin.com/vXTdbv5y

Edit: Всъщност формулата в цикъла си работи ако не променяме 28-ми ред, така че по-лесен вариант за оправяне е просто да си направиш в цикъла i <= stringlenght. 

0
06/10/2017 13:44:11
PlamenMIvanov avatar PlamenMIvanov 9 Точки

Благодрая ти, сега е 100/100.

Нещо тези дължини на стринговете, и от къде до къде да завъртам цикъла са ме прецакали - малко са ми объркващи.

0
mickewasowski avatar mickewasowski 0 Точки

https://pastebin.com/0mHHr6Es А някой може ли да помогне с поправка/пояснение на проблема по моя код? Благодаря предварително!

0