[C] Iloczyn pierwszych wyrazów ciągu

track01
Użytkownik
Użytkownik
Posty: 23
Rejestracja: 20 paź 2013, o 15:05
Płeć: Mężczyzna
Lokalizacja: Lublin

[C] Iloczyn pierwszych wyrazów ciągu

Post autor: track01 »

Napisz funkcję, która dla zadanej liczby całkowitej nieujemnej \(\displaystyle{ n}\) wyznacza iloczyn \(\displaystyle{ n}\) pierwszych wyrazów ciągu danego wzorem:

\(\displaystyle{ a_{i} = \begin{cases} 1&\mbox{ dla }i=0 \\ 2 \cdot a_{i-1} +1& \mbox{ dla }i>0 \end{cases}}\)
Ostatnio zmieniony 20 cze 2015, o 21:35 przez Jan Kraszewski, łącznie zmieniany 3 razy.
Powód: Poprawa wiadomości. Symbol mnożenia to \cdot.
majkz
Użytkownik
Użytkownik
Posty: 65
Rejestracja: 4 paź 2014, o 12:09
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 18 razy
Pomógł: 3 razy

[C] Iloczyn pierwszych wyrazów ciągu

Post autor: majkz »

Można zastosować podejście rekurencyjne do wyznaczania n-tej wartości ciągu. Taka funkcja miałaby wtedy postać:

Kod: Zaznacz cały

int RekMul(int n){
if(n == 0) return 1;
return 2*RekMul(n - 1) + 1;
}
No i teraz w pętli od zerowej do n-tej wartości ciągu wykorzystywać tą funkcję do wyznaczania wartości, przez którą będziemy mnożyć.
track01
Użytkownik
Użytkownik
Posty: 23
Rejestracja: 20 paź 2013, o 15:05
Płeć: Mężczyzna
Lokalizacja: Lublin

[C] Iloczyn pierwszych wyrazów ciągu

Post autor: track01 »

Jak ma wyglądać taka pętla? Rozumiem, że ma być ona częścią programu, funkcji main?
ksisquare
Użytkownik
Użytkownik
Posty: 132
Rejestracja: 1 cze 2012, o 07:04
Płeć: Mężczyzna
Lokalizacja: Polska
Pomógł: 15 razy

[C] Iloczyn pierwszych wyrazów ciągu

Post autor: ksisquare »

\(\displaystyle{ \prod_{i=0}^{7}a(i) > 2^{32}}\)
\(\displaystyle{ \prod_{i=0}^{10}a(i) > 2^{64}}\)-- 24 cze 2015, o 14:14 --

Kod: Zaznacz cały

unsigned int iloczyny[10];

int main(void) {
    unsigned int a=0, p=1, i;
 	for(i=0; i<10; i++) 
		iloczyny[i] = (p *= (a = 2*a + 1));
...
ODPOWIEDZ