Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
5 / 5 / 5
Регистрация: 25.03.2018
Сообщений: 293
1

Некорректный результат в вычислении включения в треугольник

07.11.2018, 22:01. Показов 246. Ответов 0
Метки нет (Все метки)

Здравствуйте! Решаю простенькую задачу на кодфорсе (http://codeforces.com/problemset/problem/1075/A), однако при данных, 1000000000000000000 и два раза по 500000000000000001 у меня почему-то выдаёт White. Я подебажил, и обнаружил, что b у меня становится равной 0, хотя должно быть отриц. число. Вы можете прогнать мой код на идентичных данных, например 1000 и два раза по 501, и выдаст Вам Black. Однако если добавить нулей(сделать число больше), то начинает тупо b = 0... хотя должен быть отрицательный результат. Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
double n;
 
struct Point {
 
    double x, y;
}to;
 
class WoB {
 
public:
    bool Check(double x, double y) {
 
        double a = (1 - x) * (1 - 1) - (n - 1) * (1 - y);
        double b = (n - x) * (n - 1) - (1 - n) * (1 - y);
        double c = (1 - x) * (1 - n) - (1 - 1) * (n - y);
 
        if ((a >= 0 && b >= 0 && c >= 0) || (a <= 0 && b <= 0 && c <= 0)) return true;
        else return false;
    }
}go;
 
int main() {
 
    cin >> n >> to.x >> to.y;
 
    go.Check(to.x, to.y) ? cout << "White" : cout << "Black";
 
    return 0;
}
Еслм кому-то лень читать условие задачи, то в кратце: в левом нижнем углу белая фигура, в правом верхнем чёрная. Выбирается точка на шахм. доске и нужно определить, какая фигура доберётся до неё первее. Белая ходит первой. Можно также ходить по диагонали. Ходят по одной клетке каждая фигура.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.11.2018, 22:01
Ответы с готовыми решениями:

Некорректный результат при вычислении формулы
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; int main() { float a,z;...

При вычислении дробных выражений получается некорректный ответ
при вычислении дробных выражений получается некорректный ответ, например:...

Некорректный результат умножения
Скажите пожалуйста, если ставлю переменную 130 , то эффективный адрес после умножения eax...

Fgets некорректный результат
#include &lt;iostream&gt; #include &lt;cstring&gt; #include &lt;cstdio&gt; using namespace std; bool password();...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.11.2018, 22:01

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

bc возвращает некорректный результат
Пишу: bc -l &lt;&lt;&lt; 0.11+0.00+0.00+0.00 Возвращает результат .11 Как заставить возвращать?...

Некорректный результат в программе на C++
Программа в цикле прибавляет к нынешней переменной её предыдущее значение. Но результат не...

Некорректный результат запроса
доброго дня Сделал отчет вроде бы ищет ,а вроде и нет он находит несколько позиций и все начинаешь...

Некорректный результат запроса
делаю радченко приходую 1 товар 7шт по цене 3000 каждый документом ПриходнаяНакладная 1 приходую...

Некорректный результат вычислений
var i,n,suma:integer; begin suma:=0; writeln('Введіть N'); readln(n); for i:=1 to n...

Запрос к БД возвращает некорректный результат
В готовую БД пытаюсь вставлять записи из файла, который лежит в res/raw. Вот мой код private...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.