Programu obliczający sumę siedmiu liczb całkowitych – stworzenie jak najkrótszego kodu

Programu obliczający sumę siedmiu liczb całkowitych – stworzenie jak najkrótszego kodu
  • Rejestracja: dni
  • Ostatnio: dni
0

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

  • Rejestracja: dni
  • Ostatnio: dni
0

Da się krócej

Kopiuj
#include<iostream>
int main()
{
    for(int i=1,s=0;i<=8;i++) s+=i;
    std::cout<<s;
}
carlosmay
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Pabianice
1

@ Pan Jan: Przecież tego kodu nie da się skompilować (zmienna s jest niezadeklarowana).
Można to tak:

Kopiuj
#include<iostream>
int main()
{
    int num{};
    for (int i{}, tmp{}; i < 7 && (std::cin >> tmp); ++i, num += tmp);
    std::cout << num << std::endl;
}
hauleth
  • Rejestracja: dni
  • Ostatnio: dni
3

To jest kod w C nie w C++ ale powinno dać radę

Kopiuj
i=7,c;main(t){while(i--)scanf("%d",&t),c+=t;printf("%d",c);}

Ideone

Sądzę, że w C może być ciężej napisać krótszy program.

By działało w C++ trzeba trochę poprawić:

Kopiuj
#include<cstdio>
int i=7,c,t;int main(){while(i--)scanf("%d",&t),c+=t;printf("%d",c);}

Ideone

dymul
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 182
2

Sądzę, że w C może być ciężej napisać krótszy program.

challenge accepted :)

Kopiuj
c,t;main(){while(scanf("%d",&t)>0)c+=t;printf("%d",c);}

Ideone

W C++ specem nie jestem (w C w sumie też nie) ale na podobnej zasadzie:

Kopiuj
#include<iostream>
int c,t;int main(){while(std::cin>>t)c+=t;std::cout<<c;}

Ideone

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
2

Przebijam o 1:

Kopiuj
c,t;main(){while(~scanf("%d",&t))c+=t;printf("%d",c);}

Jeśli wynik może być niedokładny (o 1 za duży):

Kopiuj
main(c,t){while(~scanf("%d",&t))c+=t;printf("%d",c);}
dymul
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 182
2

No to jeszcze jeden mniej:

Kopiuj
c;main(t){for(;~scanf("%d",&t);c+=t);printf("%d",c);}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.