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

judge-ът не отчита правилно работеща според условието на задачата Car Number програма

Програмата за задачата Car Number (виж judge.softuni.bg/Contests/Practice/Index/978#14):
// 6 Car Number.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
       int low_limit, high_limit;
       cin >> low_limit >> high_limit;
       for (int n1 = low_limit+1; n1 <= high_limit; n1 = n1+1)
       {
             for (int n4 = low_limit; n4 < n1; n4 = n4 + 1)
             {
                    for (int n2 = low_limit; n2 <= high_limit; n2++)
                    {
                           for (int n3 = low_limit; n3 <= high_limit; n3++)
                           {
                                  if ((n3 + n2)%2 == 0 && (n1-n4)%2!=0)
                                  {
                                        cout << n1 <<n2 << n3<< n4 << " ";
                                  }
                           }
                    }
             }
       }
       cout << endl;
}
извежда правилните възможни комбинации на цифрите на регистрационния номер, обаче в друга последователност.
Може би трябва да се коригира условието на задачата така, че да се фиксира изрично коя поред цифра да се върти във външен цикъл, и коя в по-вътрешен.

0
Въпроси за SoftUni
ValenNEW avatar ValenNEW 51 Точки

#include "stdafx.h"
#include <iostream>
#include "stdio.h"
using namespace std;
int main()
{
    int low_limit, high_limit;
    cin >> low_limit >> high_limit;
    for (int n1 = low_limit; n1 <= high_limit; n1++)
    {
        for (int n2 = low_limit; n2 <= high_limit; n2++)
        {
            for (int n3 = low_limit; n3 <= high_limit; n3++)
            {
                for (int n4 = low_limit; n4 <= high_limit; n4++)
                {
                    if (n1 > n4)
                    {
                        if (n1 % 2 == 0)
                        {
                            if (n4 % 2 != 0)
                            {
                                if ((n3 + n2) % 2 == 0 && (n1 - n4) % 2 != 0)
                                {
                                    cout << n1 << n2 << n3 << n4 << " ";
                                }
                            }
                        }
                        else
                        {
                            if (n4 % 2 == 0)
                            {
                                if ((n3 + n2) % 2 == 0 && (n1 - n4) % 2 != 0)
                                {
                                    cout << n1 << n2 << n3 << n4 << " ";
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    cout << endl;
    return 0;
};

0
27/04/2018 22:26:45
ValenNEW avatar ValenNEW 51 Точки

Поправка.

Би ли пробвал по този начин.

#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
    int low_limit, high_limit;
    cin >> low_limit >> high_limit;
        for (int n1 = low_limit; n1 <= high_limit; n1++)
        {
            for (int n2 = low_limit; n2 <= high_limit; n2++)
            {
                for (int n3 = low_limit; n3 <= high_limit; n3++)
                {
                    for (int n4 = low_limit; n4 <= high_limit; n4++)
                    {
                        if (n1 % 2 == 0)
                        {
                            if (n4 % 2 !=0)
                            {
                                if (n1 > n4)
                                {
                                    if ((n3 + n2) % 2 == 0 && (n1 - n4) % 2 != 0)
                                    {
                                        cout << "" << n1 << "" << n2 << "" << n3 << "" << n4 << " ";
                                    }
                                }
                            }
                        }
                        else
                        {
                            if (n4 % 2 == 0)
                            {
                                if (n1 > n4)
                                {
                                    if ((n3 + n2) % 2 == 0 && (n1 - n4) % 2 != 0)
                                    {
                                        cout << "" << n1 << "" << n2 << "" << n3 << "" << n4 << " ";
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    cout << endl;
}

0
ValenNEW avatar ValenNEW 51 Точки

На мен продължава да си ми дава "compile time error". Не мога да помогна. Сори.

0
ValenNEW avatar ValenNEW 51 Точки

На моето "Visual Studio" програмата изпълнява задачата коректно. Но в "judge"-а не минава.

И да, изходът е този който е очакван като резултат.

0
kolioi avatar kolioi 616 Точки

Махни първия ред

#include "stdafx.h"

Не ти трябва в Джадж.

0
KaloyanGangov avatar KaloyanGangov 15 Точки

Наскоро имах подобен проблем;

Дай да пробваме следното:

ето тази част int low_limit, high_limit; може ли да я направиш ей така: 

int low_limit = 0;

int high_limit = 0;

По някаква странна причина на мен не ми ги хващеше ако не инициализирах стойностите на променливите с 0.

Дано стане. Успех!

0