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

Zadanie Klocki-problem z zadaniem

Ostatnio zmodyfikowano 2013-11-28 23:24
Autor Wiadomość
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
C/C++
#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;
}
P-97440
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.
P-97448
virhill
Temat założony przez niniejszego użytkownika
» 2013-11-25 18:48:47
wtedy zadanie nie przechodzi czasowo,
P-97450
Rafals
» 2013-11-25 18:54:52
C/C++
#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ś:
C/C++
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.
P-97453
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.

C/C++
suma = 0.5 * n *( 1 + n ) * k

P-97462
virhill
Temat założony przez niniejszego użytkownika
» 2013-11-25 19:45:09
oba rozwiązania przechodzą na 60
P-97463
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
P-97464
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?
P-97476
« 1 » 2 3
  Strona 1 z 3 Następna strona