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

Exercises: Lists and Matrices - 7. Square Numbers

Задачата е следната: Read a list of integers and extract square numbers from it and print them in descending order. A square number is an integer which is the square of any integer. For example, 1, 4, 9, 16 are square numbers.

Получавам 80/100 и не мога да си открия грешката. Явно нещо пропускам.

Ето кода:

static void Main(string[] args)
       {
           List<long> nums = Console.ReadLine().Split(' ').Select(long.Parse).ToList();
           List<long> result = new List<long>(); 
           nums.Sort();
           nums.Reverse(); 
           for (int i = 0; i <nums.Count; i++)
              if (Math.Sqrt(nums[i]) == Math.Truncate(Math.Sqrt(nums[i])))
                   result.Add((nums[i]));           
           Console.WriteLine(string.Join(" ",result));
       }

 

1
Programming Fundamentals
evgenikolov avatar evgenikolov 310 Точки

Здравей колега, ако забелязваш резултатите всички сме с по 80 точки на тази задача. Явно има проблем с теста и преди се е случвало. Когато дойде време за лекцията ги забелязват и ги коригират. 

А ето и моето решение:

using System;
using System.Collections.Generic;
using System.Linq;

class SquareNumbers
{
    static void Main()
    {
        var input = Console.ReadLine().Split().Select(int.Parse).ToList();
        var result = new List<int>();

        foreach (var num in input)
        {
            if (Math.Sqrt(num) == Math.Floor(Math.Sqrt(num)))
            {
                result.Add(num);
            }
        }
        result.Sort();
        result.Reverse();
        Console.WriteLine(string.Join(" ", result));
    }
}

 

1
tihomirj avatar tihomirj 33 Точки

Да. Може и да си прав. Ще видим утре.

0
evgenikolov avatar evgenikolov 310 Точки

Прав съм, виж сега точките. Добавиха още 1 тест и станаха 87.

EDIT: Вече дава 100 :)

0
31/05/2016 00:09:53
tihomirj avatar tihomirj 33 Точки

Да, явно е имало грешка :)

0
TeodorDimitrov89 avatar TeodorDimitrov89 263 Точки

Моето решение е http://pastebin.com/L0ET9GKq .Като нищо не се получаваше с вградените функции видях от нета и си направих свой метод.Не е най-доброто решение но дава 80/100.

0
i.minchev.qa avatar i.minchev.qa 34 Точки

Здравей и от мен,

Ето и моето решение - http://pastebin.com/ZKyiNNDG

Аз се опитвам първо да коренувам и да запазя като string.

После с int.TryParse се опитвам да Parse-на stringa и ако е int, го запазвам в List.

Гледам вече си решил задачата 100/100, но просто добавям разнообразие във вариантите за решение.

Поздрави. :)

0
31/05/2016 10:02:08