[Programming Fundamentals] 11. 5 Different Numbers
Добър вечер! Има ли някой, който се е справил с тази задача - https://judge.softuni.bg/Contests/Compete/Index/579#10.Само тя ми остана. Благодаря предварително.
Добър вечер! Има ли някой, който се е справил с тази задача - https://judge.softuni.bg/Contests/Compete/Index/579#10.Само тя ми остана. Благодаря предварително.
Ето ти моето решение: https://pastebin.com/HfNsVffj
Дано ти помогне :)
Ето и моето решение: https://pastebin.com/ck8bshsW.
Но явно в условието има едно равно повече. Това е условието: a ≤ n1 < n2 < n3 < n4 ≤ n5 ≤ b.
Моето решение е 100/100 вярно, но при условие: a ≤ n1 < n2 < n3 < n4 < n5 ≤ b.
Като се замисля, щом nelkov го е решил при даденото условието, може пък и аз да не съм прав да нагаждам условието според кода си
Благодаря за решението! Лесна задача, но явно не съм я разбрал. Вече ми е ясна.
Ето и семпъл вариант :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _11._5_Different_Numbers
{
class Different_Numbers
{
static void Main(string[] args)
{
int a = int.Parse(Console.ReadLine());
int b = int.Parse(Console.ReadLine());
int c = 0;
for (int n1 = a; n1 <= b; n1++)
{
for (int n2 = a; n2 <= b; n2++)
{
for (int n3 = a; n3 <= b; n3++)
{
for (int n4 = a; n4 <= b; n4++)
{
for (int n5 = a; n5 <= b; n5++)
{
if (a <= n1 && n1 < n2 && n2 < n3 && n3 < n4 && n4 < n5 && n5 <= b)
{
Console.WriteLine($"{n1} {n2} {n3} {n4} {n5}");
c++;
}
}
}
}
}
}
if (c == 0)
{
Console.WriteLine("No");
}
}
}
}
Явно има грешка на втория изход - не ми съвпадаха няколко цифри, но имам 100т.https://pastebin.com/REj1ejSw
Извинявайте!
Наистина съм объркала темата. Ще скрия отговора си.
Но пък имам решение по тази задача: https://pastebin.com/p1n6HMTB.
Ето и едно решение от мен: https://pastebin.com/ucQsLAYR
Това е моето решение. Вески цикъл трябва да ми дава числата, които отговарят на: "n1 < n2 < n3 < n4 ≤ n5". По този начин си спестявам време и проверки. За да направя това в цикъл "n2" увеличавам +1 числото от предходния и така до цикъл "n5". За край на всеки цикъл използвам същият подход, само че в цикъл "n1" започвам с edns-4 и прибавям +1 във всеки следващ цикъл, докато достигна в цикъл "n5", където остава само ends. Надявам се да ви е било полезно.
using System;
namespace DifferentNumbers
{
class DifferentNumber
{
static void Main()
{
int numM = int.Parse(Console.ReadLine());
int numG = int.Parse(Console.ReadLine());
int start = numM;
int ends = numG;
if (numM > numG)
{
start = numG;
ends = numM;
}
if(ends-start>=4)
{
for (int i = start; i <= ends - 4; i++)//n1
{
for (int k = i+1; k <= ends - 3; k++)//n2
{
for (int m = k + 1; m <= ends - 2; m++)//n3
{
for (int n = m + 1; n <= ends - 1; n++)//n4
{
for (int b = n + 1; b <= ends; b++)//n5
{
Console.WriteLine("{0} {1} {2} {3} {4}",i,k,m,n,b);
}
}
}
}
}
}
else
{
Console.WriteLine("No");
}
}
}
}
Не откривам грешката. Judje дава 83%
https://pastebin.com/sK5Hb4ze
if (a + 4 <= b && a >= -100 && a <= 100 && b >= -100 && b <= 100)
не можах да видя условието заключено е в judge или просто прави проблем в момента. Но от коментарите и решенията на колегите тази ти проверка не прави никакъв смисъл явно искат разликата между а и б да е поне 5 и това е достатъчно а ти излишно си усложнила явно проверката и рповеряваш различни и излишни неща.Но проблема е в този ред с тоя if хващаш граничен тест и го чупиш.
Problem 11. 5 Different Numbers
You will be given two numbers – a and b. Generate five numbers - n 1 , n 2 , n 3 , n 4, n 5 , for which the following conditions
are true: a ≤ n 1 < n 2 < n 3 < n 4 < n 5 ≤ b. If there is no number in the given interval, which satisfies the conditions –
print “No”.
Input
The input contains two integers, each on a new line.
Output
Print all numbers in increasing order and on a new line.
Constraints
a and b will be integers in the interval [-100…100]
Благодаря за решението! Лесна задача, но явно не съм я разбрал. Вече ми е ясна.
nelkov, благодаря за решението.
Възможно ли е да обясниш целта на "if (n2 <= n1 || n3 <= n2 || n4 <= n3 || n5 <= n4) continue;"
Ами идеята е че комбинации не отговарящи на това условие да се пропускат от вложените цикли. Това става с continue. Дано съм бил полезен