Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ «Неделя первая - Уравнение» #2

Войти
Регистрация
Восстановить пароль
Оценить эту запись

С++ «Неделя первая - Уравнение» #2

Запись от acmades размещена 13.07.2017 в 01:56
Обновил(-а) acmades 15.07.2017 в 13:10 (Изменение категории)

Задание
На вход вашей программе в стандартном вводе даны действительные коэффициенты A, B и C уравнения Ax² + Bx + C = 0. Выведите все его различные действительные корни в любом порядке. Гарантируется, что хотя бы один из коэффициентов не равен нулю.

Пример

stdin -> stdout
2 5 2 -> -0.5 -2
2 4 2 -> -1
2 1 2 ->
0 4 10 -> -2.5

Подсказка:
Для вычисления квадратного корня используйте функцию sqrt из библиотеки cmath.
Мое решение:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
{
    double a, b, c, d, x1, x2;
    cin >> a >> b >> c;
    d = b * b - 4 * a * c;
    if (d > 0) {
        x1 = (-b + sqrt(d)) / (2 * a);
        x2 = (-b - sqrt(d)) / (2 * a);
        cout << x1 << " " << x2;
    }
    else if (d == 0) {
        x1 = (-b) / (2 * a);
        cout << x1;
    }
    return 0;
}
По-моему идеально )))))
Всего комментариев 4

Комментарии

  1. Старый комментарий
    Аватар для ZarinZomanu4
    нет) Failed case #6/14: Wrong answer (Time used: 0.00/1.00, preprocess time used: 0/None, memory used: 9125888/536870912.)
    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
    
    #include <iostream>
    #include <cmath>
    using namespace std;
     
    int main() {
        double a, b, c,d,x1,x2, x3;
        cin>> a >>b>>c;
        d= b*b-4*a*c;
        x1=(-b + sqrt(d))/(2*a);
        x2=(-b - sqrt(d))/(2*a);
        if(a==0 && b==0)
        {
            cout<<c;
        }
        else if(a==0) {
            x3=-c/b;
            cout<<x3<<endl;
       }
        else if (d>0){
                    cout<<x1<<" "<<x2<< endl;
                }
        else if (d==0 )
                {
                    cout<<x1<<endl;
                }
        else if (d<0)
                    {cout<<" "<<endl;}
                
                
        
       return 0;
    }
    Запись от ZarinZomanu4 размещена 21.07.2017 в 22:09 ZarinZomanu4 вне форума
  2. Старый комментарий
    Аватар для ZarinZomanu4
    но у меня не проходит кейс 9\14
    Запись от ZarinZomanu4 размещена 21.07.2017 в 22:10 ZarinZomanu4 вне форума
  3. Старый комментарий
    Аватар для Avazart
    Цитата:
    По-моему идеально )))))
    А вынести в ф-цию(и) ?
    Запись от Avazart размещена 22.07.2017 в 10:46 Avazart на форуме
  4. Старый комментарий
    Цитата:
    Сообщение от ZarinZomanu4 Просмотреть комментарий
    нет) Failed case #6/14: Wrong answer (Time used: 0.00/1.00, preprocess time used: 0/None, memory used: 9125888/536870912.)
    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
    
    #include <iostream>
    #include <cmath>
    using namespace std;
     
    int main() {
        double a, b, c,d,x1,x2, x3;
        cin>> a >>b>>c;
        d= b*b-4*a*c;
        x1=(-b + sqrt(d))/(2*a);
        x2=(-b - sqrt(d))/(2*a);
        if(a==0 && b==0)
        {
            cout<<c;
        }
        else if(a==0) {
            x3=-c/b;
            cout<<x3<<endl;
       }
        else if (d>0){
                    cout<<x1<<" "<<x2<< endl;
                }
        else if (d==0 )
                {
                    cout<<x1<<endl;
                }
        else if (d<0)
                    {cout<<" "<<endl;}
                
                
        
       return 0;
    }
    да признаю ошибку. Не учел момент когда a=0.
    Запись от acmades размещена 24.07.2017 в 08:37 acmades вне форума
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru