Witam. Niedawno zacząłem przygodę z programowaniem i mam problem. Otóż muszę wykonać zadanie gdzie będę na zmianę dodawał i odejmował liczby nieparzyste. Zrobiłem już pętelkę, która wypisuje liczby nieparzyste, lecz nie wiem jak wykonać coś takiego: 1+3-5+7-11...
Liczę na szybką pomoc bo ja już nie mam pojęcia co zrobić.
for (int i = 0; i < ...; i++) {
if (i % 2 == 0) {
wynik += f(i);
} else {
wynik -= f(i);
}
}
Czy to aby na pewno dobrze jest? Jeśli chce obliczyć dla n = 10, czyli liczby nieparzyste to: 1,3,5,7. No i ja chciałbym żeby działało to tak 1+3-5+7=6. W tym programie jak tak zrobiłem to wyszło -5.
Podałem Ci tylko ogólny sposób podejścia do problemu - sam sobie go dostosuj do swojego konkretnego przypadku.
Musisz troche inaczej indeksami pokierowac I zaczac od 3, Bo Ida dwa plusy na poczatek:
int i=3;
int k = 2;
int s=1;
while (i<n){
if (i%2!=0){
s += (-1)^k * i;
i++;
k++;
}
else{
i++;
continue;
}
}
return s;
Potegowanie jeszcze Ci potrzebne I zamknac to w funkcje od n.
1+3-5+7-11...
to czy tu masz dodawanie/odejmowanie na zmiane jest mocno dyskusyjne. jak dla mnie to masz dwa dodawania obok siebie.
obydwie wersje da sie zrobic bez petli (a jesli z petla to if-y nie sa niezbedne) - jak sobie wypiszesz wiecej wynikow to powinienes zobaczyc odpowiednia zaleznosc.
dla mojej interpretacji "na zmiane", przy zalozeniu ze liczone jest od 1 do nieparzystego i
, rozwiazanie moze wygladac tak:
int result = (i + 1) / 2 * ("-+"[i % 4 / 2] - ',');
Nie mam Tu kompa, na kartce wygladalo mi dobrze.