Zadanie Klocki-problem z zadaniem
Ostatnio zmodyfikowano 2013-11-28 23:24
virhill Temat założony przez niniejszego użytkownika |
Zadanie Klocki-problem z zadaniem » 2013-11-25 18:09:01 Treść zadania: Jasiu ma pewną liczbę klocków, które układa w słupki. Najpierw buduje jeden słupek złożony z K klocków. Każdy kolejny słupek jest o K klocków wyższy od poprzedniego. Jasiu zbudował w ten sposób dokładnie N słupków i teraz zastanawia się ile klocków użył Wejście W pierwszym wierszu standardowego wejścia znajdują się dwie liczby N,K(1<=N,K<=10^9) Wyjście W pierwszym wierszu standardowego wyjścia Twój program powinien wypisać cyfrę jedno±ci liczby użytych klocków. Przykłady: wejście:2 3 3 1 1 2 wyjście: 9 6 2 Napisałem taki program ale nie chce mi przejść na 100, przechodzi na 80/100 #include <iostream> long long pierwsza, druga; using namespace std; int main() { cin >> pierwsza; cin >> druga; long long a = 0; long long b = 0; long long c = 0; long long d = 0; if( pierwsza % 10 != 0 ) { c = pierwsza % 10; } else { c = pierwsza; } if( druga % 10 != 0 ) { d = druga % 10; } else { d = druga; } a =( c ) *( d ); b =(((( c ) - 1 ) *( d ) ) *( c ) ) / 2; cout <<( a + b ) % 10; }
|
|
Rafals |
» 2013-11-25 18:41:31 Hmm użyj pętli do stworzenia sumy kolejnych elementów ciągu. Czyli np: N = 3, K = 2 Więc a1 = 2 a2 = 4 a3 = 6 an = N*K Czyli zapętlasz to jadąc z n od 1 do wartości zadanej włącznie, za każdym razem sumując kolejny element z poprzednimi. |
|
virhill Temat założony przez niniejszego użytkownika |
» 2013-11-25 18:48:47 wtedy zadanie nie przechodzi czasowo, |
|
Rafals |
» 2013-11-25 18:54:52 #include <iostream> long long pierwsza, druga; using namespace std; int main() { cin >> pierwsza; cin >> druga; long long a = 0; long long b = 0; a = pierwsza * druga; b =(( pierwsza - 1 ) * druga * pierwsza ) / 2; cout <<( a + b ); } Co to za wzór i na co? Nie powiem Ci co do reszty czy np long long Ci tu potrzebny. No i ta zmienna globalna też chyba nie musi nią być. Pewnie zaraz ktoś więcej Ci napisze. U Ciebie nie wychodziło bo jak miałeś: if( pierwsza % 10 != 0 ) { c = pierwsza % 10; }
i podałeś pierwsza = 15 to do c przypisywało Ci 5 i zamiast 15 słupków miałeś tylko 5. |
|
docentpp |
» 2013-11-25 19:40:25 Pierwszy słupek składa się z k klocków, drugi z 2*k klocków , trzeci z 3*k klocków , ostatni słupek ma n*k klocków. suma = 0.5 * n *( 1 + n ) * k
|
|
virhill Temat założony przez niniejszego użytkownika |
» 2013-11-25 19:45:09 oba rozwiązania przechodzą na 60 |
|
virhill Temat założony przez niniejszego użytkownika |
» 2013-11-25 19:49:38 Rafals, robię tak ponieważ i tak musze obliczyć liczbe jedności, jeżeli tak zrobie to i tak wynik się nie zmieni a skróci się jedynie czas rozwiązania |
|
Rafals |
» 2013-11-25 20:29:41 No tak jest jak się nie czyta całości. Nie doczytałem na temat wyjścia. Przechodzą na 60 tzn że za mało? Max 100? |
|
« 1 » 2 3 |