Ciąg arytmetyczny c++
Ostatnio zmodyfikowano 2011-04-22 17:32
adam33x Temat założony przez niniejszego użytkownika |
Ciąg arytmetyczny c++ » 2011-04-20 09:36:41 Witam,mam pytanie. Dlaczego dla a=2 i n=2 suma ciągu arytmetycznego wynosi 4 (r=1). #include <iostream> #include <conio.h> using namespace std; float licz( int liczba ) { float suma = 0, mian = 0; short a = 1, n = 1; for(; liczba > 0; liczba--, n++ ) { a += n - 1; cout << "a: " << a << " n: " << n << endl; mian =((( 2 * a ) +( n - 1 ) ) / 2 ) * n; cout << "mian: " << mian << endl; suma = suma +( 1 / mian ); cout << "suma: " << suma << endl; getch(); } return suma; }
int main() { int ilosc; cin >> ilosc; int * tab = new int[ ilosc ]; float * wyniki = new float[ ilosc ]; for( int j = 0; j < ilosc; j++ ) { cin >> tab[ j ]; } for( int j = 0; j < ilosc; j++ ) { wyniki[ j ] = licz( tab[ j ] ); cout << wyniki[ j ] << endl; } delete[] tab; delete[] wyniki; getch(); return 0; }
Proszę o szybką odpowiedź. |
|
pekfos |
» 2011-04-20 13:59:42 kod w [cpp][/cpp] wsadź. |
|
ison |
» 2011-04-20 16:04:41 for( int i = 1; i < n; i++ ) { a++; }
|
dlaczego n-1 razy dodajesz 1 do zmiennej a? :p po co for? |
|
adam33x Temat założony przez niniejszego użytkownika |
» 2011-04-21 18:02:45 @up Algorytm wylicza wartość wyrażenia f(1)=1/1 f(2)=1/1+1/(2+3) f(3)=1/1+1/(2+3)+1/(4+5+6) f(4)=1/1+1/(2+3)+1/(4+5+6)+1/(7+8+9+10) itd.
Pętla for o którą pytasz ustala pierwszy wyraz ciągu arytmetycznego w mianowniku powyższego wyrażenia. |
|
ison |
» 2011-04-21 21:26:05 @up tak, ale po co do tego używać fora? Nie uważasz że zamiast n razy dodawać 1 do liczby można do niej dodać jednokrotnie liczbę n? ;) |
|
adam33x Temat założony przez niniejszego użytkownika |
» 2011-04-22 17:32:54 @up Masz rację ;-) Ale nie a+=n tylko a+=n-1 Ale to nie wyjaśnia dlaczego dla a=2 i n=2 mian=4 chociaż powinno być 5 |
|
« 1 » |