Професионална програма
Loading...
+ Нов въпрос
slav.petkov avatar slav.petkov 26 Точки

[Programming-Basics]{Conditional Statements}Sum Seconds Problem

Здравейте, колеги,

въпреки че темата е за условни конструкции, бих желал да споделя своето решение на тази задача:

 

            var firstTime = int.Parse(Console.ReadLine());
            var secondTime = int.Parse(Console.ReadLine());
            var thirdTime = int.Parse(Console.ReadLine());

            var secondsSum = firstTime + secondTime + thirdTime;
            var minutes = secondsSum / 60;
            var seconds = secondsSum % 60;

            Console.WriteLine("{0}:{1:00}", minutes, seconds);

Когато разделим secondsSum на 60, получаваме броя на минутите, а когато вземем остатъка от делението на secondsSum с 60,

получаваме и броя на съответните секунди.

 

Бележки:

  • Операторът "/" връща цялата част при делението на две целочислени числа, например 124 / 60 ще даде ризултат 2.
  • Операторът "%" връща остатъа при деление на две целочислени числа, например 124 % 60 ще даде резултат 4.

 

Тагове:
10
Programming Basics 29/01/2016 22:09:31
yasen6275 avatar yasen6275 18 Точки

Това не беше ли решението което даде Наков на лекцията?

0
viktor.dechev.1 avatar viktor.dechev.1 11 Точки

Е , да покажа и аз моето:

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

namespace SumSeconds
{
    class SumSeconds
    {
        static void Main(string[] args)
        {
            int sum=0;

            for (int i = 0; i < 3; i++)
            {
                sum = sum + int.Parse(Console.ReadLine());
            }

            var minutes = sum / 60;
            var seconds = sum % 60;
            
            Console.WriteLine(minutes+":"+PrintSeconds(seconds));
    
           
        }

        private  string PrintSeconds(int seconds)
        {
            if (seconds <= 9)
            {
                return ("0" + seconds.ToString());
            }
            else
                {
                   return seconds.ToString();
 
                }
        }
    }
}

0
01/02/2016 19:47:27
chimev88 avatar chimev88 11 Точки

Здравейте,

Да споделя и аз моето решение ;)

using System;

class SecondsSum
{
    static void Main()
    {
        int secondsA = int.Parse(Console.ReadLine());
        int secondsB = int.Parse(Console.ReadLine());
        int secondsC = int.Parse(Console.ReadLine());
        int minutes = (secondsA + secondsB + secondsC) / 60;
        int seconds = (secondsA + secondsB + secondsC) % 60;
        Console.WriteLine("{0}:{1:00}", minutes, seconds);    
    }
}

4
viktor.dechev.1 avatar viktor.dechev.1 11 Точки

Така преработено?
------------
using System;

    class SumSeconds
    {
        static void Main()
        {
            int time = 0;

            for (int i = 0; i < 3; i++)
            {
                time = time + int.Parse(Console.ReadLine());
            }

           // time / 60 is computing the minutes, time % 60 gives te seconds

            Console.WriteLine("{0}:{1:00}", time / 60, time % 60);
    
            }

     
        }
    

1
02/02/2016 15:35:55
partsutska avatar partsutska 2 Точки

Здравейте, колеги!

Тъй като в презентацията е започнато примерно решение на задачата,си поиграх малко и сътворих следното:


        static void Main()
        {
            var sec1 = int.Parse(Console.ReadLine());
            var sec2 = int.Parse(Console.ReadLine());
            var sec3 = int.Parse(Console.ReadLine());

            var secs = sec1 + sec2 + sec3;
            var mins = 0;

            if (secs < 59)
            { secs = sec1 + sec2 + sec3; }

            if (secs >=60 && secs <= 119)
            { mins++; secs = sec1 + sec2 + sec3 - 60; }

            if (secs >= 120 && secs <= 179)
            { mins++; mins++; secs = sec1 + sec2 + sec3 - 120; }

            if (secs < 10)
                    Console.WriteLine(mins + ":" + "0" + secs);
             else
                    Console.WriteLine(mins + ":" + secs);
        }
  

Работи и judge го приема за вярно решение, но като гледам, е доста по-дълго в сравнение от вече предложените. :)

-1
RujenaDimitrova avatar RujenaDimitrova 18 Точки

Извинявай, но не успях да докарам решението ти да ми го отпечата на VB, :(

0
Rumyanarusimova avatar Rumyanarusimova 20 Точки

Обърни внимание на това къде поставяш скобите-оттам може да възникне проблем

0
inf3ctionbg avatar inf3ctionbg 0 Точки

Благодаря, very useful ^^

0
cvetomirG avatar cvetomirG 132 Точки

Здравейте, аз съм я решил по мързеливия начин, timespan и просто сумираме

using System;

    class Program
    {
        static void Main()
        {
        var firstSportist = int.Parse(Console.ReadLine());
        var secondSportist = int.Parse(Console.ReadLine());
        var thirdSportist = int.Parse(Console.ReadLine());
        var time = firstSportist + secondSportist + thirdSportist;
        var timespan = TimeSpan.FromSeconds(time);
        Console.WriteLine(timespan.ToString(@"m\:ss"));
    }
}

 

0
14/01/2017 16:37:24
MilenaAdzhemova avatar MilenaAdzhemova 50 Точки

Много прегледно и опростено написано!

Супер е!

1
nasko_y avatar nasko_y 5 Точки

И така става:

using System;
class SumSeconds
{
    static void Main()
    {
        var x1 = int.Parse(Console.ReadLine());
        var x2 = int.Parse(Console.ReadLine());
        var x3 = int.Parse(Console.ReadLine());
        var s1 = x1 + x2 + x3;
        if (s1 < 10)
        {
            Console.WriteLine("0:0" + s1);
        }
        else if (s1 >= 10 && s1 < 60)
        {
            Console.WriteLine("0:" + s1);
        }
        else if (s1 >= 60 && s1 < 70)
        {
            Console.WriteLine("1:0" + (s1-60));
        }
        else if (s1 >= 70 && s1 < 120)
        {
            Console.WriteLine("1:" + (s1-60));
        }
        else if (s1 >= 120 && s1 < 130)
        {
            Console.WriteLine("2:0" + (s1 - 120));
        }
        else if (s1 >= 130 && s1 < 180)
        {
            Console.WriteLine("2:" + (s1 - 120));
        }            
    }
}

0
tsveti.zlateva avatar tsveti.zlateva 2 Точки

Ето още едно If-else-if-else решение:

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

namespace SumSeconds
{
    class Program
    {
        static void Main(string[] args)
        {
            double racer1 = double.Parse(Console.ReadLine());
            double racer2 = double.Parse(Console.ReadLine());
            double racer3 = double.Parse(Console.ReadLine());

            double sum = racer1 + racer2 + racer3;

            if (sum <= 59)
            {
                if (sum < 10)
                {
                    Console.WriteLine("0:0{0}", sum);
                }
                else if (sum >= 10)
                {
                    Console.WriteLine("0:{0}", sum);
                }

            }
            else if (sum > 59)
            { 
                if (sum <= 119)
                {
                    double seconds = sum - 60;

                    if (seconds < 10)
                    {
                        Console.WriteLine("1:0{0}", seconds);
                    }
                    else if (seconds >= 10)
                    {
                        Console.WriteLine("1:{0}", seconds);
                    }
                }
                else if (sum > 119)
                { 
                    if (sum <= 179)
                    {
                        double seconds = sum - 120;

                        if (seconds < 10)
                        {
                            Console.WriteLine("2:0{0}", seconds);
                        }
                        else if (seconds >= 10)
                        {
                            Console.WriteLine("2:{0}", seconds);
                        }
                    }
                }
            }
        }
    }
}
 

0
Aleksandar.K avatar Aleksandar.K 3 Точки

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

namespace sumSeconds
{
    class Program
    {
        static void Main(string[] args)
        {
            double first = double.Parse(Console.ReadLine());
            double second =double.Parse(Console.ReadLine());
            double third = double.Parse(Console.ReadLine());
            double times = first + second + third;
            if(times<=9)
            {
                Console.WriteLine($"0:0{times}");
            }

            else if (times<= 59)
            {
                Console.WriteLine($"0:{times}");
            }           
            else if (times==60)
            {
                Console.WriteLine("1:00");
            }
            else if(times<=69)
            {
                Console.WriteLine($"1:0{times-60}");
            }
            else if(times<=119)
            {
                Console.WriteLine($"1:{times-60}");
            }
            else if (times==120)
            {
                Console.WriteLine("2:0");
            }
            else if (times<=129)
            {
                Console.WriteLine($"2:0{times-60-60}");
            }
            else if (times<=179)
            {
                Console.WriteLine($"2:{times-60-60}");
            }
            else if (times==180)
            {
                Console.WriteLine("3:00");
            }
            

        }
    }
}

Но мисля ,че като за Programming-Basics  решението на  chimev88  е най-подходящо!

0
26/10/2018 13:23:44