Загрузка...

How to speed up the code so that it runs less than 1 second?

Thread in C# created by dfshsu Oct 28, 2022. 304 views

  1. dfshsu
    dfshsu Topic starter Oct 28, 2022 58 Sep 11, 2021
    C#
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace ConsoleApp1
    {
    internal class Program
    {
    static void Main(string[] args)
    {
    int a = int.Parse(Console.ReadLine());
    int b = int.Parse(Console.ReadLine());
    int c = int.Parse(Console.ReadLine());

    int i = 0;

    for (; a + c > b && b + c > a && b + a > c; i++)
    {
    a -= 1;
    b -= 1;
    c -= 1;
    }

    Console.WriteLine(i);

    }
    }
    }
     
  2. КотикЧерный
    КотикЧерный Oct 28, 2022 Скинхэд из Новороссийска 777 Mar 3, 2019
    использовать нормальную тачку:)
     
  3. гриндер
    гриндер Oct 28, 2022 Разработка софта, ботов - https://zelenka.guru/threads/6583046/ 1978 Jul 14, 2022
    заменить чем то Parse но не факт что быстее будет
     
    1. dfshsu Topic starter
  4. unafraid
    unafraid Oct 28, 2022 14 Oct 21, 2022
    dfshsu, какие входные данные принимает программа?
     
    1. dfshsu Topic starter
  5. xmka
    xmka Oct 28, 2022 26 Feb 8, 2019
    Так оно и выполняется меньше секунды, если не учитывать ввод цифр
    Вот код с эмуляцией ввода цифр и нажатия на Enter
    C#
    using System;
    using System.Diagnostics;
    using System.Windows.Forms;

    namespace ConsoleApp1
    {
    class Program
    {
    public static Stopwatch stopwatch = new Stopwatch();

    static void Main()
    {
    stopwatch.Start();

    SendKeys.SendWait("55");
    SendKeys.SendWait("{Enter}");
    int a = int.Parse(Console.ReadLine());

    SendKeys.SendWait("25");
    SendKeys.SendWait("{Enter}");
    int b = int.Parse(Console.ReadLine());

    SendKeys.SendWait("74");
    SendKeys.SendWait("{Enter}");
    int c = int.Parse(Console.ReadLine());

    int i = 0;

    for (; a + c > b && b + c > a && b + a > c; i++)
    {
    a -= 1;
    b -= 1;
    c -= 1;
    }

    Console.WriteLine(i);

    // Code End
    stopwatch.Stop();
    Console.WriteLine("Время: " + stopwatch.Elapsed.Days + ":" + stopwatch.Elapsed.Hours + ":" + stopwatch.Elapsed.Minutes + ":" + stopwatch.Elapsed.Seconds + ":" + stopwatch.Elapsed.Milliseconds);
    Console.WriteLine("Секунд: " + stopwatch.Elapsed.TotalSeconds);

    // End Program
    Console.WriteLine("Нажмите Enter, для закрытия программы");
    Console.ReadLine();
    }
    }
    }
    [IMG]
     
    1. vtlstolyarov
      xmka, нахера тебе эмуляция ввода цифр? просто запускай секндомер после того как введёшь данные а не перед тем как введёшь.
    2. xmka
      vtlstolyarov, потому что могу это сделать, что доказывает что даже с этим программа работает быстро
    3. vtlstolyarov
      xmka, глупости :)
  6. dobvik
    dobvik Oct 28, 2022 Новореги тоже люди! 255 May 10, 2020
    Во-первых, писать правильно стилистически. А i вообще можешь убрать, чуть побыстрее будет. В приципе цикл на while заменить можно.
    The post was merged to previous Oct 28, 2022
    while (a + c > b && b + c > a && b + a > c)
     
  7. Rokky27
    Rokky27 Oct 28, 2022 608 Aug 17, 2020
    вообще по идее у тебя сложность получается O(n^3). почитай про анализ сложности алгоритмов и будет тебе счастье.
     
Top
Loading...