Program fakt; var n,i,z:integer; begin readln(n); z:=1; for i:=2 to n do z:=z*i; writeln(z); end.
Если программу написать так, то максимальный факториал, которой мы сможем вычислить - 12. Можно integer изменить на real, тогда чуть больше сможем вычислить. Так же можно вычислить через массив, тогда где-то 3000 мы сможем получить.
Если же ввести больше 12 в этой программе, то получится переполнение переменой, из-за чего число пойдёт "по кругу". Т.е. мы получим не 3 000 000 000, а -1 000 000 000, т.к. максимальное число у integer - примерно 2 000 000 000
using namespace std;
int main() {
int m;
cout << "m = ", cin >> m, cout << "\n";
int b[m];
srand(time(NULL));
cout<<"array:\n";
for (int i=0; i<m; i++)
{
b[i]=rand() % 50;
cout<<b[i]<<" ";
}
cout << "\n";
for (int i=0; i<m; i++)
if ((i+1)%2==0) b[i] *= 2;
else b[i]=0;
for (int i=0; i<m; i++) cout << b[i] << " ";
cout << "\n";
return 0;
}
Пример:
m = 10
array:
47 3 29 46 36 31 2 2 20 20
0 6 0 92 0 62 0 4 0 40
var
n,i,z:integer;
begin
readln(n);
z:=1;
for i:=2 to n do
z:=z*i;
writeln(z);
end.
Если программу написать так, то максимальный факториал, которой мы сможем вычислить - 12. Можно integer изменить на real, тогда чуть больше сможем вычислить. Так же можно вычислить через массив, тогда где-то 3000 мы сможем получить.
Если же ввести больше 12 в этой программе, то получится переполнение переменой, из-за чего число пойдёт "по кругу". Т.е. мы получим не 3 000 000 000, а -1 000 000 000, т.к. максимальное число у integer - примерно 2 000 000 000