Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Liczba podzielna przez 15

Ostatnio zmodyfikowano 2012-05-13 21:47
Autor Wiadomość
SeaMonster131
Temat założony przez niniejszego użytkownika
Liczba podzielna przez 15
» 2012-05-13 21:37:01
Otóż zadanie wygląda tak:
http://pl.spoj.pl/problems/WZP09_2F/

I napisałem taki o to program:
C/C++
#include <cstdio>
#include <iostream>
#include <stdlib.h>

int main()
{
    std::string n, b;
    int suma = 0, a = 0, c = 0;
   
    while( n != "0" )
    {
        std::cin >> n;
        if( n == "0" )
             break;
       
        std::string::reverse_iterator it = n.rbegin();
       
        if(( * it == '0' || * it == '5' ) && n.length() >= 2 )
        {
            c = n.length();
            while( c-- )
            {
                b = n[ c ];
                a = atoi( b.c_str() );
                suma += a;
            }
            if( suma % 3 == 0 )
                 printf( "TAK\n" );
            else
                 printf( "NIE\n" );
           
        }
        else
             printf( "NIE\n" );
       
    }
   
    return 0;
}

I jak dla mnie to działa on dobrze, lecz po przesłaniu kodu wynik to "błędna odpowiedź".. Wie ktoś dlaczego ?
P-56667
akwes
» 2012-05-13 21:42:59
A to -45 i 45 nie jest podzielne na 15 :P ?

// yyy zaraz


-30
TAK
-10
NIE
-45
NIE
45
NIE
45
NIE
30
NIE

wtf??
P-56668
SeaMonster131
Temat założony przez niniejszego użytkownika
» 2012-05-13 21:47:26
Zapomniałem o wyzerowaniu zmiennej "suma", lecz tak i tak jest błąd..
C/C++
#include <cstdio>
#include <iostream>
#include <stdlib.h>

int main()
{
    std::string n, b;
    int suma = 0, a = 0, c = 0;
   
    while( n != "0" )
    {
        std::cin >> n;
        if( n == "0" )
             break;
       
        std::string::reverse_iterator it = n.rbegin();
       
        if(( * it == '0' || * it == '5' ) && n.length() >= 2 )
        {
            c = n.length();
            suma = 0;
            while( c-- )
            {
                b = n[ c ];
                a = atoi( b.c_str() );
                suma += a;
            }
            if( suma % 3 == 0 )
                 printf( "TAK\n" );
            else
                 printf( "NIE\n" );
           
        }
        else
             printf( "NIE\n" );
       
    }
   
    return 0;
}

A to -45 i 45 nie jest podzielne na 15 :P ?
"Każdy zestaw danych zawiera jedną liczbę całkowitą n (n >= 0)" :)

// Kurcze, jednak przez te nie wyzerowanie zmiennej "suma" był błąd, oj jaki ja głupi haha :) Szukałem i szukałem błędu a jak na forum temat założyłem to od razu go znalazłem..
P-56669
« 1 »
  Strona 1 z 1