Проблем 14 със задача 3equal nubers
Здравейте някой реши ли 14 задача, с доста зор за два дена другите ги направих само тази ми остана да му се не види!
Здравейте някой реши ли 14 задача, с доста зор за два дена другите ги направих само тази ми остана да му се не види!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _3equalnumbers
{
class Program
{
static void Main(string[] args)
{
double a = double.Parse(Console.ReadLine());
double b = double.Parse(Console.ReadLine());
double c = double.Parse(Console.ReadLine());
if (a == b && b == c)
{
Console.WriteLine("yes");
}
else
{
Console.WriteLine("no");
}
}
}
}
Решението е доста простичко надявам се да ти помогне.
Да, наитина е много простичко. Самата задача е лесна.
Тъй като по-сложните проверки са предвидени за следващата лекция, реших, че трябва да има начин задачата да се реши и с наученото до момента. Поблъсках си главата доста докато измисля решението и ето до какво достигнах:
namespace ThreeEqualNumbers
{
class ThreeEqualNumbers
{
static void Main(string[] args)
{
double num1 = double.Parse(Console.ReadLine());
double num2 = double.Parse(Console.ReadLine());
double num3 = double.Parse(Console.ReadLine());
if (num1 != num2)
{
Console.WriteLine("no");
}
else if (num1 == num3)
{
Console.WriteLine("yes");
}
else
{
Console.WriteLine("no");
}
Ако първото число не е равно на второто, ясно е, че и 3те числа няма да са еднакви. Тогава изписваме "no" и програмата приключва до там.
Но ако първото условие не е вярно (т.е. числата 1 и 2 са еднакви), изпълнението на блока на първия if ще се пропусне и прогамата ще направи втората проверка. Там (след като вече знаем, че първото и второто число са еднакви) правим проверка дали първото и третото са еднакви ( може да се направи и с второто и третото). Ако се окаже, че са еднакви, на конзолата се печатаме "yes". А в случай, че се окаже, че първото и третото число не са еднакви, без да правим повече проверки, пак отпечатваме "No".
Най-просто е да се направи следното:
нова променлива x = num1/num2 - num2/num3;
if x == 0
Console.WriteLine("yes");
Ето и още един вариант:
namespace ThreeEqualNumbers
{
class ThreeEqualNumbers
{
static void Main(string[] args)
{
double num1 = double.Parse(Console.ReadLine());
double num2 = double.Parse(Console.ReadLine());
double num3 = double.Parse(Console.ReadLine());
if (!(num1 == num2))
{
Console.WriteLine("no");
}
else
{
if (num2 == num3)
{
Console.WriteLine("yes");
}
else
{
Console.WriteLine("no");
}
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _3EdnakviChisla
{
class Program
{
static void Main(string[] args)
{
var num = double.Parse(Console.ReadLine());
var num2 = double.Parse(Console.ReadLine());
var num3 = double.Parse(Console.ReadLine());
if (num == num2)
{
if (num == num3)
{
Console.WriteLine("yes");
}
else
{
Console.WriteLine("no");
}
}
else if (num!=num2)
{
if (num != num2)
{
Console.WriteLine("no");
}
}
}
}
}
Това е моето просто решение с наученото до тук, направих го за 3 мин., но като гледам някои решения ми се виждат по-сложни и си личи, че съм новак. Иначе точките тук са 100 от 100.
Здравей,
Ето ти две решения които написах набрзо.
В първото е аналогично на решението което е дадено от колегата, но в него виждам, че има ненужни проверки, затова го оптимизирах.
https://pastebin.com/q5duqMwL
Във второто съм използвал логическо "и" като по този начин има само една единствена проверка.
https://pastebin.com/jb7PgVG9
Успех!
Любо
При мен работи и с един & left i right - има ли значение ?
Ако имаш предвид оператора & да за този случаи наи вероятно ще работи но тои прави различно нещо тук по случаиност се получава.
Тои работи със битовете на числата.
пак сръвнява но сравнява битовете например ако имаш някое число например 20 и неговото представяне в битове е 01010101 и имаш друго число и неговото битово представяне е 0101010 то този оператор ще мине и ще сравни битовете на всички позиции.
Ако не ме разбираш прочети си за броини системи.