Помогите решить задачу за 9 касс по информатике.
5-9 класс
|
Найдите произведение нечётных чисел от 100 до 150
Реализовано целочисленное умножение произвольной точности.
const
n = 100;{максимальное количество цифр в числе}
type
big = record
v: array[1..n] of byte; {массив с цифрами числа}
m: integer {количество цифр в числе}
end;
function TruncBig(a: big): big;
{Усекает незначащие нули}
var
i, p, n: integer;
begin
n := a.m;
p := 0;
while (p < n) and (a.v[p + 1] = 0) do p := p + 1;
for i := 1 to n - p do Result.v[i] := a.v[i + p];
Result.m := n - p
end;
function Str2Big(s: string): big;
{Переводит строковое представление в big}
var
i, n, k, err: integer;
begin
n := Length(s);
Result.m := n;
for i := 1 to n do
begin
Val(s[i], k, err);
Result.v[i] := k
end
end;
function Big2Str(p: big; truncation: boolean := false): string;
{Переводит представление big в строковое}
var
i, n: integer;
c, s: string;
begin
s := '';
n := p.m;
for i := 1 to n do
begin
Str(p.v[i], c);
s := s + c
end;
if truncation then begin
i := 0;
while (s[i + 1] = '0') and (i < n) do i := i + 1;
if i > 0 then s := Copy(s, i + 1, n - i)
end;
Result := s
end;
function MultBig(a, b: big): big;
{Возвращает произведение чисел типа big}
var
i, j, k, m, n, s: integer;
begin
m := a.m; n := b.m;
for i := m to m + n do Result.v[i] := 0;
Result.m := m + n;
for j := n downto 1 do
begin
if b.v[j] = 0 then Result.v[j + m + n - 1] := 0
else begin
k := 0;
for i := m downto 1 do
begin
s := a.v[i] * b.v[j] + Result.v[i + j] + k;
Result.v[i + j] := s mod 10;
k := s div 10
end;
Result.v[j] := k
end
end;
Result := TruncBig(Result);
end;
var
a, b: big;
s: string;
i: integer;
begin
s := '101';
a := Str2Big(s);
i := 103;
while i <= 150 do
begin
Str(i, s);
b := Str2Big(s);
a := MultBig(a, b);
i := i + 2
end;
Writeln(Big2Str(a))
end.
Результат выполнения:
22366756668201709645820891817450061318871259559453125
**** Если точность не нужна ****
var
p: double;
i: integer;
begin
i := 103; p := 101;
while i <= 150 do
begin
p := p * i;
i := i + 2
end;
Writeln(p)
end.
Результат выполнения:
2.23667566682017E+52
Т.е. все же программу написать? Или Вы будете по ней вручную 25 чисел перемножать? Там получается ответ 22366756668201709645820891817450061318871259559453125 и с этой точностью он непредставим в компьютере при использовании обычных средств арифметики.
Напишите программу если не сложно..
Вы меня не поняли? Нельзя в машине даже в 16 байтах (это максимальная разрядность целых чисел) представить такой результат. А с плавающей точкой результат будет ограничен точностью в 16-17 цифр
Вместо того, что я написал выше, получится 2.23667566682017E+52
Другие вопросы из категории
C) PPP;
D) URL.
го почему-то не в красный , а в оранжевый цвет. Но для этого надо смешать краски желтого (6 частей ) и красного (2 части) цветов. Сколько грамм оранжевой краски может получить Маша, имея в наличии 300г желтой и 600г красной краски
1)модель
2)натурная(материальная)модель
3)информационная модель
Читайте также
Задача: Две
хозяйки купили 8 литров молока. У одной 5 литров в 6- литровом бидоне, у
другой 3 литра в 5 - литровом бидоне. Они решили разделить всё молоко
поровну, по 4 литра, пользуясь ещё одним, 2 - литровом бидоном. Как это
сделать?
что угодно, помогу)Вот задача - Под конец учебного года ученики 11 класса решали понять у кого же из них будет самый высокий средний балл ? Известно , что - в классе учится 14 учеников, - Сумма всех средних баллов аттестата = 100.Известно также , что первый ученик имел средний балл, который составляет 1/ 12 суммы всех средних баллов. Второй ученик - на 0,15 % больше, чем первый ученик , но на 1,75 % меньше , чем третий ученик . Средние баллы аттестатов двух сестер были равными среднему арефметичному оценок вышеупомянутых учеников , разделенном на 1.5 . Четвертый ученика на конец года имел такой же балл , как и первый ученик , но на 5% меньше , а остальные ученики - имели равные баллы .Какой средний балл на конец года получил каждЫй?
существительное-это самостоятельная часть речи,...
6)Глагаол-это самостоятельная часть речи,...
7)Земледельцы-это люди,...
8)Животноводы-это люди,...
9)Тяжёлая промышленность-это...
10)Лёгкая ромышленность-это...
Ребята пожалуйста помогите решить задание для 6 класса по информатике.
1. Дано 2 числа найти модуль разности этих чисел увеличенный в 5 раз.
2. Дано 4 значное число поменять местами 1 и 2 цифру местами
3. Дан диаметр круга найти его площадь (формула S=п*R).
Я примерно знаю как писать но всеровно нуждаюсь в помощи
Мои мысли:
program z1;
uses crt;
var ... : integer;
begin
дальше всё в тумане
буду рад за решённые 1 или 2 задачи
реку.В их распоряжении есть маленькая лодка, вмещающая только одного взрослого или двоих детей.Как организовать переправу если и взрослые и дети умеют грести?