• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Challenge #1: Stwórz NAJKRÓTSZY kod źródłowy w C++ dodający siedem liczb całkowitych!

Object Storage Arubacloud
+115 głosów
12,018 wizyt
pytanie zadane 9 kwietnia 2015 w C i C++ przez Mirosław Zelent Nałogowiec (34,750 p.)
edycja 10 marca 2018 przez Eryk Andrzejewski

Challenge #1 - Najkrótszy kod w C++

Zadanie polega na wykonaniu w języku C++ programu komputerowego obliczającego sumę siedmiu liczb całkowitych. Zadanie wydaje się banalne, ale tym razem chcemy stworzyć jak najkrótszy kod (w sensie ilości znaków) - jest to zadanie typu challenge! 

Wejście: 
siedem liczb całkowitych z zakresu -1000000..1000000

Wyjście: 
suma podanych liczb

Przykładowy zestaw danych:

Wejście
9 4 -12 78 44 -144 233

Wyjście:
212

Myślę, że wspólnymi siłami dojdziemy do granic skrócenia kodu i stworzymy takie źródło, którego już nie da się bardziej uprościć :) Sprawdź się!

Rozwiązania można przesyłać poniżej
(tak jak podczas Brainfuck challenge: https://youtu.be/dzFgY4JsZe8 będzie to widget scarky.com):

http://scarky.com/widget/getiframe/PKF130TO/width=550&height=500

Nie ma limitu czasowego, challenge pozostaje otwarty dla potomnych :)

Moja rada: kombinuj samodzielnie, nie porównuj się do innych. Staraj się raczej poprawić własny rezultat - podążaj drogą swojego mistrzostwa, potraktuj to zadanie jako challenge dla sprawdzenia swojej determinacji, pomysłowości, umiejętności szukania informacji w sieci - to nie wyścig szczurów, chodzi głównie o rozwój umysłu i cech charakteru. Challenge są fajne właśnie dlatego, że można z tymi problemami powalczyć klika dni, przespać się z nimi, wpaść na rozwiązanie w zupełnie niespodziewanym momencie - to niesamowicie rozwija cierpliwość i zaprawia w bojach :) Code ON! Pozdrawiam!

AKTUALIZACJA

Jako, że ze starym challengem są problemy, zrobiłem nową wersję na tej samej platformie. Różni się ona od oryginalnej tylko zestawem danych wejściowych przy użyciu których są wykonywane testy (rzecz jasna nie znałem oryginalnych). Link. ~ Eryk

6
komentarz 9 października 2016 przez Avernis Nałogowiec (27,400 p.)
edycja 9 października 2016 przez Avernis
​#include <oszukanie.h>

int main()
{
	x //makro
}

 

Chyba wygrałem

komentarz 3 czerwca 2017 przez Milesq Nałogowiec (32,020 p.)
jak dodać odpowiedź?

40 odpowiedzi

+4 głosów
odpowiedź 10 kwietnia 2015 przez hjester Użytkownik (840 p.)
Pytanie, dlaczego kompilator nie wspiera C++11/14?
komentarz 10 kwietnia 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Jak to nie wspiera? :)
komentarz 12 kwietnia 2015 przez Mirosław Zelent Nałogowiec (34,750 p.)
Trzeba by chyba sprawdzić na czym pracuje scarky.com
komentarz 12 kwietnia 2015 przez daan Pasjonat (17,640 p.)
Racja kompilator nie wspiera za bardzo nowych standardów, z tego co mi się udało ustalić jest to GCC 4.0.1 więc dość stara wersja ale akurat w zdaniu gdzie trzeba skracać kod im starszy kompilator tym więcej "złych" rzeczy można zrobić przez co kod staje się krótszy :) w nowych kompilatorach nie wiem czy udało by się zejść do poziomu 60 :P
+4 głosów
odpowiedź 11 kwietnia 2015 przez Dragonet.17 Pasjonat (19,630 p.)
Świtny pomysł, już się zabieram do pracy :)
Hmm, ciekawa=y rodzaj rozkminy, jak skrócić kod :D
+3 głosów
odpowiedź 10 kwietnia 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Osz kurde, nie wiem za piernik jak zmniejszyć kod z 74 do 71 :) No cóż, porobię inne rzeczy, potem spróbuję :)
+3 głosów
odpowiedź 13 kwietnia 2015 przez marcin_kub Obywatel (1,420 p.)
60 znaków. "I did it" ;D .

Czekamy z niecierpliwością na kolejne challenge :) .
+2 głosów
odpowiedź 13 kwietnia 2015 przez Patryk Monarcha Nowicjusz (180 p.)

60 znaków, może być laugh z tą ilością znaków udało mi się wykonać zadanie na 2 różne sposoby wink 

+1 głos
odpowiedź 14 kwietnia 2015 przez Frezen Obywatel (1,330 p.)
Kurde, jak wy to robicie że macie 60-70 znaków? xD. Ja mam 110 i za nic nie wiem jak to zmniejszyć bardziej, może dlatego, że jestem poczatkujący i mało jeszcze wiem.

A tak wgl, to nie wiem czemu nie mogę przesłać rozwiązania.
+1 głos
odpowiedź 15 kwietnia 2015 przez zirael [PL] Mądrala (5,200 p.)
Z czego korzystacie do zliczania znaków? Jest w C::B jakiś licznik? Kurcze gdyby wyzbyć się biblioteki nagłówkowej #include<iostream> można by sporo znaków zaoszczędzić :D
komentarz 16 kwietnia 2015 przez Surykat Stary wyjadacz (14,780 p.)
Nie mam pojęcia, ktoś tam pisał, że ma pętlę, 2 zmienne i ma 60 znaków. Też mam pętlę, 2 zmienne i mam 95 znaków. :D
komentarz 18 kwietnia 2015 przez zirael [PL] Mądrala (5,200 p.)

może skróć nazwy zmiennych do jednej literki ;) a zmienne deklaruj po przecinku np int z, y;

komentarz 18 kwietnia 2015 przez Surykat Stary wyjadacz (14,780 p.)
No to było dla mnie oczywiste :D CHociaż jedna rzecz mi przyszłą do głowy, ale 65 nie osiągnę tym. ;P
+1 głos
odpowiedź 17 kwietnia 2015 przez Damian Dubowski Nowicjusz (240 p.)
89 znaków, ale jeszcze się nie poddałem!
+1 głos
odpowiedź 21 kwietnia 2015 przez taranti Nowicjusz (200 p.)
Witam. Moja przygoda z programowaniem zaczela sie 7 dni temu gdy natrafilem na kanal Pana Miroslawa na YT, wiec jestem kompletnym żółtodziobem. W tym momencie jestem na etapie lekcji nr 5. Wiec z gory przepraszam jezeli moje pytanie wyda sie trywialne dla doswiadczonych Koderow, lecz odzwierciedla ono stopien mojej wiedzy. A wiec: postanowilem troche ominac zasady challengu i napisac go tak zeby sam sie rozwiazal po uruchomieniu, bez ingerencji "z zewnatrz". Utknąlem na tym jak zrobić przedzial od -1000000 do 1000000. Przedzial do jakiego udalo mi sie dojsc podaje tylko liczby ujemne.

#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;

int suma=0, liczba;

int main()
{
    srand(time(NULL));
    for (int i=0; i<=6; i++)
    {
    liczba=rand()%2000001-1000000;
    suma+=liczba;
    cout<<liczba<<endl;
    }
    cout << " suma "<<suma<<endl;

    return 0;
}
komentarz 21 kwietnia 2015 przez Mirosław Zelent Nałogowiec (34,750 p.)
Ten przedział to jedynie informacja jak wielkich liczb można się spodziewać, nie należy tego okodowywać randem, a po prostu zapytać: cin>>liczba (to jest właśnie tzw. wejście). Pozdrawiam
komentarz 21 kwietnia 2015 przez taranti Nowicjusz (200 p.)
Dziekuje za odpowiedz. A czy moge liczyc na podpowiedz jak sobie z tym poradzic zeby rand losowal liczby z wyzej wymienionego zakresu bo nie daje mi to spokoju :)
komentarz 21 kwietnia 2015 przez Mirosław Zelent Nałogowiec (34,750 p.)
Polecam odcinek 12 kursu C++ - jest właśnie o tym jak korzystać ze SPOJa. Co do zakresu losowania to jest poprawny, tylko że funkcja rand() nie obsługuje tak wielkiego przedziału liczb. Szczegóły tutaj: http://stackoverflow.com/questions/9775313/extend-rand-max-range
komentarz 21 kwietnia 2015 przez taranti Nowicjusz (200 p.)
Bardzo dziekuje za nakierowanie mnie na wlasciwe tory.

Swoją drogą robi Pan wspaniala robote(YT, Blog, Forum) pomagajac i poswiecajac Swoj czas.

Jeszcze raz dziekuje i pozdrawiam!!!!
+1 głos
odpowiedź 26 lutego 2016 przez draghan VIP (106,230 p.)

JAK ktoś to zrobił w 38 znaków?? Niesamowite. Mam 61 i już nie wiem, z czego ciąć - a przecież widzę że da się! :D

0 głosów
odpowiedź 25 kwietnia 2015 przez skav3n Gaduła (3,900 p.)
Przyłączam się do zabawy, C++ nie znam, piszę w pythonie (miesiąc nauki).

45 znaków (5 linijek kodu).

Pozdrawiam
0 głosów
odpowiedź 7 maja 2015 przez Bronko1410 Nowicjusz (140 p.)

Witam wszystkich! Jestem nowy,kolejny którego Pan Mirosław zaraził C++...Ale do rzeczy :

Czy też tam macie, że program działa u Was na komputerze/kompilatorze a w tym challengu "Result wrong answer" ciągle?

Już nawet nie dbam o długość programu tylko żeby mi zaliczyło ale się nie udaje...Ktoś wie ocb?

komentarz 9 maja 2015 przez Bronko1410 Nowicjusz (140 p.)
Zszedłem "na szybko" na 91 ale muszę się z tym przespać :) hmm kim jest "daan" :D ?
komentarz 10 maja 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Taki fajny gościu :) Zapraszam na chat, tam często siedzą mili ludzie :)
komentarz 26 lutego 2016 przez jpacanowski VIP (101,940 p.)
#include<iostream>
int main()
{
    for(int i=1,s=0;i<=8;i++) s+=i;
    std::cout<<s;
}
komentarz 26 lutego 2016 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Panie wywal to i nie psuj innym zabawy ;) PS Chyba najwiekszy odkop w historii forum, gratuluję :)
komentarz 14 lipca 2016 przez manjaro Nałogowiec (37,390 p.)
Ten kod nie działa. Jak tak zliczacie to się nie dziwię jak można zejść poniżej 60. Mi kompilator nie przyjmuje tego.
0 głosów
odpowiedź 24 maja 2015 przez najlepszyprogramista Nowicjusz (180 p.)

36 znaków cheeky

niestety algorytm sprawdzający nie uwzględnia mojej biblioteki

 

0 głosów
odpowiedź 18 września 2015 przez Muminek Dyskutant (8,650 p.)
edycja 18 września 2015 przez Muminek
Ktoś jeszcze próbuje? :) Ja na początku jak zaczynałem miałem jakieś 210 znaków. Potem przerwa od nauki C++... a wróciłem z innym myśleniem i jest 94 :) przy obecnym stanie wiedzy i doświadczenia, znajomości sztuczek niżej chyba nie zejdę :D
komentarz 18 września 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Ja zeszedłem sam chyba do 71 znaków, potem dostałem małą podpowiedź, która mnie natchniła i jest 61 :D A na początku to ja nie wiedziałem jak zejśc poniżej 90 :D
0 głosów
odpowiedź 26 lutego 2016 przez MichuDev Pasjonat (20,300 p.)
#include <iostream>
using namespace std;
int a;
int suma;
int main()
{
    for(int i=0;i<7;i++)
    {
        cin>>a;
        suma += a;
    }
    cout<<suma;
    return 0;
}

 

komentarz 26 lutego 2016 przez jpacanowski VIP (101,940 p.)
Usuń using namespace std; a do cin i cout dodaj std::
Zawsze kilka znaków mniej... ;)
komentarz 7 marca 2016 przez Daaa22 Dyskutant (8,250 p.)

Pfff...

#include<iostream>
int main(){int a,b=7,c=0;for(;b--;c+=a)std::cin>>a;std::cout<<c;}

 

0 głosów
odpowiedź 21 września 2016 przez eighty Nowicjusz (190 p.)
Nie wiem czy powinienem odświeżać, ale link się zepsuł.
0 głosów
odpowiedź 9 października 2016 przez Nasos Bywalec (2,730 p.)

Dlaczego ten kod daje wrong answer?

#include<iostream>
int x=7,y,z;int main(){for(;x--;z+=y)std::cin>>y;std::cout<<z;}

 

komentarz 13 maja 2017 przez WilmaOlcho Obywatel (1,740 p.)
zmienna y niekoniecznie jest zerem na początku pracy programu
komentarz 3 września 2017 przez maciek061 Gaduła (4,490 p.)
Można wyrzucić int sprzed maina
komentarz 3 września 2017 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Niestety czelendż na tej stronie coś się zepsuł i zawsze wyrzuca wrong answer, natomiast zrobiłem kiedyś identyczny. Link: http://erykandrzejewski.tk
0 głosów
odpowiedź 13 maja 2017 przez WilmaOlcho Obywatel (1,740 p.)

Moja propozycja, wykorzystanie "efektów ubocznych"
 

#include <iostream>
int main()
{
    signed int i=0,s=0,t=0;
    for(;i<7&&std::cin>>t&&((s+=t)||1);i++);
    std::cout<<s;
    return 0;
}

 

komentarz 13 maja 2017 przez draghan VIP (106,230 p.)

Do najkrótszego kodu trochę mu brakuje. Uczciwy rekord wynosi 58 znaków. :)

Tutaj masz działający link do challengu (mam nadzieję że Eryk nie będzie zły :).

komentarz 13 maja 2017 przez WilmaOlcho Obywatel (1,740 p.)
Wow :) No to trochę to jeszcze będę musiał odchudzić. Dziękuję :)
komentarz 14 maja 2017 przez draghan VIP (106,230 p.)
Na pocieszenie: tak krótki kod wymaga pewnego obejścia - niekoniecznie z samą realizacją zadania. Żeby zejść do tylu znaków trzeba trochę powalczyć z kompilatorem. Mój rekord to 59 znaków i nie widzę na razie możliwości, jak zrzucić jeszcze ten jeden znak, który dzieli mnie od rekordu. :)
0 głosów
odpowiedź 3 czerwca 2017 przez DODO Bywalec (2,950 p.)
#include "o.h"
int main()
{
    x()
}

 

komentarz 3 czerwca 2017 przez QizmoPL Stary wyjadacz (11,440 p.)
skopiowales to co bylo w komentarzu...
0 głosów
odpowiedź 3 września 2017 przez maciek061 Gaduła (4,490 p.)
edycja 3 września 2017 przez maciek061
U mnie po ciężkiej walce 104

Edit 1: 102

Edit 2: 79
komentarz 3 września 2017 przez Eryk Andrzejewski Mędrzec (164,260 p.)

Gratulacje laugh

Możesz kod skrócić jeszcze bardziej, trzeba po prostu nieco naginać zasady i wykorzystywać możliwości starego kompilatora. Do 58 znaków można zejść w taki sposób na pewno, można dużo mniej, ale to takie małe oszustwo. wink

komentarz 3 września 2017 przez maciek061 Gaduła (4,490 p.)
Jedno pytanie. Używać cin cout i biblioteki iostream czy czegoś innego?

Podobne pytania

0 głosów
2 odpowiedzi 659 wizyt
pytanie zadane 28 czerwca 2017 w Bezpieczeństwo, hacking przez Milesq Nałogowiec (32,020 p.)
+63 głosów
16 odpowiedzi 6,909 wizyt
0 głosów
1 odpowiedź 234 wizyt
pytanie zadane 18 września 2015 w Offtop przez baszmest Gaduła (3,080 p.)

92,568 zapytań

141,424 odpowiedzi

319,630 komentarzy

61,956 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...