Kann mir bitte jemand den code hier erklären?
Code:
#include <iostream>
const int ArSize =16;
int main()
{
long long factorials[ArSize];
factorials [1] = factorials[0] = 1LL;
for (int i = 2; i < ArSize; i++ )
factorials[i] = i * factorials[i-1];
for (int i = 0; i < ArSize; i++ )
std::cout << i << " ! = " << factorials [i] << std::endl;
return 0;
};
0! = 1
1! = 1
2! = 2
3! = 6
4! = 24
usw. bis
15! = 1307674368000
for (int i = 2; i< ArSize; i++)
factorials[i] = i * factorials[i-1];
Also 2< 16 TRUE und dann geht die 2 auf factorials[i] also factorials[2]=
2 * factorials[2-1]; oder ? Wenn ja was passiert hier: 2 * factorials[2-1]
Was wird da ausgerechnet? 2-1 im array und dann *2 WTF ! Zb. 2-1 ist ja dann 1 und *2 ist ja 2 ok 2! =2.Das gleiche nochmal mit 3. [3-1] *3=6 gut 3! = 6. Aber bei 4 geht das nicht mehr [4-1] *4= 12 ...
Man muss ja immer so rechnen 3! * 2= 6 -> 4!*6=24 usw.
Kann mir bitte jemand das hier erklären? Wie funktionierts!?
Danke






