| F90M | » 2010-12-28 14:54:16 | w treści zadania było powiedziane że a>=5 więc wyniki dla a<5 nie muszą być takie jak podałeś | 
 Czepiasz się szczegółów, autor pisał że 5 jest najmniejszą wartością dla A, więc teoretycznie nie ma wartości A < 5. Wiemy że są wartości A > 9, ale autor ich nie podał, więc pisząc  a = 10, b = 4, c = 3  jaką masz pewność że otrzymasz poprawny wynik? A no taką że pasuje do pewnego schematu,  a = 4, b = 1, c = 0  do tego schematu pasuje. A teraz ison napisz mi działanie (bez warunków, żeby nie było) które spełnia te zależności: a = 5, b = 1, c = 1a = 6, b = 2, c = 1
 a = 7, b = 2, c = 2
 a = 8, b = 3, c = 2
 a = 9, b = 3, c = 3
 ale to  a = 4, b = 1, c = 0  nie będzie już poprawnym wynikiem. | Gdybyś doczytał tamten wątek to byś zobaczył, że ten istotny błąd poprawiłem w przedostanim poście. | 
 Kto nie doczytał i o jaki błąd chodzi? | 
|  | 
| ison | » 2010-12-28 15:01:10 @up jeśli w zadaniu jest założenie a>=5 to nie możesz mówić o wynikach dla a<5. Nie było powiedziane że a<9 więc dla reszty powinniśmy się domyśleć tak jak chciał autor | A teraz ison napisz mi działanie (bez warunków, żeby nie było) które spełnia te zależności: 
 a = 5, b = 1, c = 1ale toa = 6, b = 2, c = 1
 a = 7, b = 2, c = 2
 a = 8, b = 3, c = 2
 a = 9, b = 3, c = 3
 
 a = 4, b = 1, c = 0nie będzie już poprawnym wynikiem. 
 | 
 np takie gdzie korzystasz ze zmiennej unsigned i w pewnym momencie w obliczeniach odejmujesz 5 - dla a<5 licznik się przekręci :) ale to jest mało istotne, założenie a>=5 jest istotne i powinniśmy się tego trzymać, nie możesz mówić że twój program ma wypisywać to samo dla a<5 co program jsc. | 
|  | 
| jsc Temat założony przez niniejszego użytkownika | » 2010-12-28 15:30:12 Dla poprawionego kodu (a co do a = - 3, rzeczywiście powinno być a = a - 3) to wyniki dla a<5 ma takie same.
 A co do błędu w programie to pokręciłem b z c.
 | 
|  | 
| F90M | » 2010-12-28 15:44:00 Dla 4 i 3 licznik się nie przekręci :P A wyniki które podałem tyczyły się tego kodu for( int a = 0, b, c; a < 10; ++a ){
 b = ;
 c = ;
 std::cout << "a = " << a << ", b = " << b << ", c = " << c << "\n";
 }
 
nie ma tu unsigned, działanie miał wstawić w miejsce komentarzy. Poprawiłem wcześniejszy post, ale nadal twierdzę że to jest szczegół, i sam dobrze wiesz że nie o to tutaj chodzi (po prostu wale odruchowo a = 0 w pętli i jadę do 9, tyle). @jsc, czy możesz mi wytłumaczyć dlaczego robisz to  a = a - 3 , bo kompletnie nie jest dla mnie zrozumiały Twój upór, wytykałem to dwa razy, a i tak dalej się tego trzymasz. | 
|  | 
| jsc Temat założony przez niniejszego użytkownika | » 2010-12-28 15:53:17 Od postu nr. P-25714.
 » Napisano 2010-12-28 02:28:14
 A to:
 b = a << 2 - 1;
 c = b + a % 2 - 1;
 
 Zeszło do 8 sekund.
 
 A to dlatego po optymalizacjach kodu JSC i F90M czasy wynosiły 11 i 13 sekund.
 
 A mój upór przy a = a - 3, wypływa z tego, że broniłem zamieszczonego kodu, który niestety źle wkleił.
 
 Wymyśliłem dlatego, bo nie chciałem kombinować co trzeba zrobić po b<<1 (ups. znalazłem błąd) i b+a%2, takie pójście na łatwiznę.
 | 
|  | 
| F90M | » 2010-12-28 15:56:13 Dobra, to teraz może wkleisz w końcu dobry kod i zamkniemy ten temat. I przeczytaj kurs STC .  | 
|  | 
| jsc Temat założony przez niniejszego użytkownika | » 2010-12-28 16:03:41     for (long int a=0; a < 10; ++a) //JSC daje 10 sek.{
 long int a2, b, c;
 a2 = a - 3;
 c = a2/2;
 b = c + (a2%2);
 cout << "a = " << a << " b = " << b << " c = " << c <<"\n";
 }
 cin >> czas;
 Nie mogłem znaleźć znaczników od grafik. | 
|  | 
| F90M | » 2010-12-28 16:20:20 Ten działa jak należy, chyba można temat zamknąć :) I muszę się jeszcze przyznać do błędu #include <iostream>
 int main()
 {
 for( int a = 0, b, c; a < 10; ++a )
 {
 b =( a >> 1 ) - 1;
 c = b +( a & 1 ) - 1;
 std::cout << "a = " << a << " b = " << b << " c = " << c << "\n";
 }
 
 std::cout << "\n";
 
 for( int a = 0; a < 10; ++a )
 {
 long int a2, b, c;
 a2 = a - 3;
 c = a2 / 2;
 b = c +( a2 % 2 );
 std::cout << "a = " << a << " b = " << b << " c = " << c << "\n";
 }
 }
 
Wynik  a = 0 b = -1 c = -2a = 1 b = -1 c = -1
 a = 2 b = 0 c = -1
 a = 3 b = 0 c = 0
 a = 4 b = 1 c = 0
 a = 5 b = 1 c = 1
 a = 6 b = 2 c = 1
 a = 7 b = 2 c = 2
 a = 8 b = 3 c = 2
 a = 9 b = 3 c = 3
 
 a = 0 b = -2 c = -1
 a = 1 b = -1 c = -1
 a = 2 b = -1 c = 0
 a = 3 b = 0 c = 0
 a = 4 b = 1 c = 0
 a = 5 b = 1 c = 1
 a = 6 b = 2 c = 1
 a = 7 b = 2 c = 2
 a = 8 b = 3 c = 2
 a = 9 b = 3 c = 3
 
 Wyniki dla a < 3 są różne więc ison miał rację. | 
|  | 
| 1 2 3 4 5 « 6 »  7 8 |