1 / 8
Jan 2017

Cześć. Może ktoś naprowadzić dlaczego SPOJ zwraca błędną odpowiedz?

#include <iostream>
#include <string>
#include <math.h> indent preformatted text by 4 spaces

using namespace std;

int main()
{
int n;
cin >> n;
for(int i = 0; i < n; i++)
    {
    double x, wynik;
    cin >>x;
    wynik = sqrt(x);
    if(x < 0)
    cout << "NIE" << endl;
    else if(fmod(wynik,1)==0)
    cout << "TAK" << endl;
    else 
    cout << "NIE" << endl;
    }

}

  • created

    Jan '17
  • last reply

    Jun '20
  • 7

    replies

  • 1.2k

    views

  • 6

    users

  • 1

    like

  • 3

    links

0 - nie jest liczbą dodatnią :wink:
a poza tym operujesz na liczbach double, nie lepiej uprościc i zrezygnować z fmod ?

2 years later

Wymyśliłam! Zrobiłam to za pomocą konwersji :slight_smile:
int r = (int) sum;
if (sum > 0 && sum == r) {
System.out.println(“TAK”);
} else {
System.out.println(“NIE”);
}

10 months later

C# jest wolniejsze.
W programie jest miejsce na optymalizacje.