// PascalABC.NET 3.2, сборка 1485 от 15.06.2017 // Внимание! Если программа не работает, обновите версию!
begin Write('Укажите длины массивов А и В: '); var (n1,n2):=ReadInteger2; var a:=ArrRandom(n1,-5,5); Write('A: '); a.Println; var b:=ArrRandom(n2,-5,5); Write('B: '); b.Println; (n1,n2):=(a.Where(x->x=0).Count,b.Where(x->x=0).Count); var c:array of integer; if n1<=n2 then c:=a.Concat(b).ToArray else c:=b.Concat(a).ToArray; Write('C: '); c.Println end.
Тебе нужно привести всё к двойке. 4 это 2 в квадрате, значит 2 в 510 + 2 в 255 - 2 в 8 (это будет 256, берем больше чтобы заполнить всё число, а теперь вычитаем то, что нам не надо) 2 в нулевой (будет 1, т.е 256-1=255) 2 в 510 + 2 в 255 - 2 в 8 +2 в 0
бывает так, что наши "квадраты" стоят не в порядке убывания, тогда расставляем их в порядке убывания. например если бы было 255 +510 -8 мы бы сделали 510+255-8
ну а теперь считаем единицы: первая цифра всегда считается как единица, минус мы считаем 255 - 8 = 247 единиц и одна единица в конце 2в 0 итого получаем первое число всегда единица 1 + минус получился 247 + единица в конце +1 = 249
// Внимание! Если программа не работает, обновите версию!
begin
Write('Укажите длины массивов А и В: ');
var (n1,n2):=ReadInteger2;
var a:=ArrRandom(n1,-5,5); Write('A: '); a.Println;
var b:=ArrRandom(n2,-5,5); Write('B: '); b.Println;
(n1,n2):=(a.Where(x->x=0).Count,b.Where(x->x=0).Count);
var c:array of integer;
if n1<=n2 then c:=a.Concat(b).ToArray
else c:=b.Concat(a).ToArray;
Write('C: '); c.Println
end.
Пример
Укажите длины массивов А и В: 10 8
A: 0 4 4 1 4 0 -2 0 5 -3
B: 0 -3 5 4 -1 -2 5 1
C: 0 -3 5 4 -1 -2 5 1 0 4 4 1 4 0 -2 0 5 -3
4 это 2 в квадрате, значит 2 в 510 + 2 в 255 - 2 в 8 (это будет 256, берем больше чтобы заполнить всё число, а теперь вычитаем то, что нам не надо) 2 в нулевой (будет 1, т.е 256-1=255)
2 в 510 + 2 в 255 - 2 в 8 +2 в 0
бывает так, что наши "квадраты" стоят не в порядке убывания, тогда расставляем их в порядке убывания. например если бы было 255 +510 -8 мы бы сделали 510+255-8
ну а теперь считаем единицы: первая цифра всегда считается как единица, минус мы считаем
255 - 8 = 247 единиц
и одна единица в конце 2в 0
итого получаем первое число всегда единица 1 +
минус получился 247 +
единица в конце +1 = 249