Wpis z mikrobloga

Mam sobie proste zadanko, niestety brak pomysłu na nie. To co napisałem liczy dobrze niestety sam kod budzi we mnie obrzydzenie. Zadanie brzmi tak(mniej więcej): ile liczb trzeba dodać od 432 do 22776 różniących się o 8. A tu moje wypociny:
double suma = 0,l=0;
for(int i=432;i<=((22776-432)/8);i=i+8)
{
suma = suma + i;
l = l + 1;
if(suma==22776)
{
break;
}
}
gdzie moje l to szukany wynik równy 39
#naukaprogramowania #programowanie #csharp
  • 20
@Kecq: ten for wyglada brzydko, ale jak cos działa jest ok:D Ja bym to napisał w python tak:
i=0
suma=0
pod=424
While True:
suma=suma+pod+8
pod=pod+8
i=i+1
print i
If suma==22776:
break
432


@cius: Twoje zadanie to tak naprawdę wyznaczenie miejsca zerowego wielomianu 22776-((432 + (432+(n−1)⋅8)) / 2 *n)=0, tłumaczę dlaczego:

Do liczby 432 dodajemy kolejno 440,448,456,464,...
czyli jest to ciąg arytmetyczny, gdzie a(n)=440+(n-1)*8

Suma tego ciągu wynosi (432+(n−1)⋅8)) / 2 *n)

szukamy więc takiego n dla którego
(432+(n−1)⋅8)) / 2 *n) = 22776, co sprowadza się do rozwiązania równania kwadratowego:

22776 - (1/2 (432 + (432 + (n - 1)×8))) n =