C++, ребята нужно вывести перестановки всех чисел от 1 до n при условии что у всех чисел соседи должны не отличаться от самого числа больше чем на 3 это должно заходить при n = 15.
Примерно так. На псевдоязыке, который легко переводится в тот, который знаком
//
Сумм=0;
Конец=0;
Ввод(Ч);
Пока (Ч#Конец) Цикл
Если Проверить(Ч)=1 Тогда
Сумм=Сумм+Ч;
КонецЕсли;
Ввод(Ч);
КонецЦикла;
Печать(Сумм);
//
//
Функция Проверить(П)
Если Остаток(П,10)=4 Тогда
Если Остаток(П,6)=0 Тогда
Возврат(1);
КонецЕсли;
КонецЕсли;
Возврат(0);
КонецФункции
//
Этот текст не использует массивы, поэтому количество вводимых чисел неограничено. Их величина определяется описанием переменной(если в языке оно явно требуется, для приведенных данных достаточно описать как ЦЕЛОЕ(INTEGER)). Сумм описать побольше(если требуется).
Если в языке нет функции Остаток(обычно MOD), напиши свою, это очень просто.
Повторюсь, в Паскаль, Бейсик, 1С текст переводится очень легко, в С(Java, PHP и пр.) чуть сложнее, там немного другой синтаксис, но это преодолимые проблемы.
Не сказала бы, что это решение сильно отличается от уже имеющегося, но
а) оно совсем немножко удобнее (хотя бы из-за ClrScr и вывода ответа с определённым количеством знаков после запятой). А ещё предусмотрена возможность отсутствия таковых чисел.
б)ну не могла я пропустить задачу по паскалю)
Program n1; Uses CRT; Const n=10; Var a: array[1..n] of integer; i,s,k: integer; begin ClrScr; Randomize; For i:=1 to n do begin a[i]:=random(10); write(a[i]:3); If a[i]=i then begin s:=s+a[i]; writeln('s=',s); k:=k+1; end; end; writeln; If k=0 then writeln('таких элементов нет') else Writeln('Среднее арифметическое элементов массива, равных своим индексам, равно ',s/k:4:4); readln end.
Примерно так. На псевдоязыке, который легко переводится в тот, который знаком
//
Сумм=0;
Конец=0;
Ввод(Ч);
Пока (Ч#Конец) Цикл
Если Проверить(Ч)=1 Тогда
Сумм=Сумм+Ч;
КонецЕсли;
Ввод(Ч);
КонецЦикла;
Печать(Сумм);
//
//
Функция Проверить(П)
Если Остаток(П,10)=4 Тогда
Если Остаток(П,6)=0 Тогда
Возврат(1);
КонецЕсли;
КонецЕсли;
Возврат(0);
КонецФункции
//
Этот текст не использует массивы, поэтому количество вводимых чисел неограничено. Их величина определяется описанием переменной(если в языке оно явно требуется, для приведенных данных достаточно описать как ЦЕЛОЕ(INTEGER)). Сумм описать побольше(если требуется).
Если в языке нет функции Остаток(обычно MOD), напиши свою, это очень просто.
Повторюсь, в Паскаль, Бейсик, 1С текст переводится очень легко, в С(Java, PHP и пр.) чуть сложнее, там немного другой синтаксис, но это преодолимые проблемы.
Не сказала бы, что это решение сильно отличается от уже имеющегося, но
а) оно совсем немножко удобнее (хотя бы из-за ClrScr и вывода ответа с определённым количеством знаков после запятой). А ещё предусмотрена возможность отсутствия таковых чисел.
б)ну не могла я пропустить задачу по паскалю)
Program n1;
Uses CRT;
Const n=10;
Var a: array[1..n] of integer;
i,s,k: integer;
begin
ClrScr;
Randomize;
For i:=1 to n do
begin
a[i]:=random(10);
write(a[i]:3);
If a[i]=i then
begin
s:=s+a[i];
writeln('s=',s);
k:=k+1;
end;
end;
writeln;
If k=0 then writeln('таких элементов нет') else
Writeln('Среднее арифметическое элементов массива, равных своим индексам, равно ',s/k:4:4);
readln
end.