{ JavaScript } Реализовать «виртуального крупье» который с генератора случайных чисел бросает шарик. Далее «крупье» определяет что выпало. На выходе должна быть соответствующая строка. например: 19, красное, нечетное, от 19 до 36, первая колонка, третья дюжина. Если выпадет ноль то просто «zero». Для решения используйте различные формы условного оператора.
Const n=10; m=7; var j,i,i_max,s,max:integer; a:array[1..n,1..m]of integer; begin for i:=1 to n do begin writeln; s:=0;i_max:=i;max:=-32768; for j:=1 to m do begin a[i,j]:=random(100)-50; write(a[i,j]:4); s:=s+a[i,j]; end; writeln('i: ',i,' ',s); if s>max then begin i_max:=i; max:=s; end; end; writeln; writeln(i_max,' s: ',max); end.
// PascalABC.NET 3.2, сборка 1367 от 20.12.2016 // Внимание! Если программа не работает, обновите версию!
function NOK(a,b:integer):integer; begin if a=b then Result:=a else begin var c:=a*b; repeat if a>b then a:=a-b else b:=b-a; until a=b; Result:=c div a end end;
begin var n:=ReadInteger('N='); var L:=new List<integer>; var m:=n; while m>0 do begin var d:=m mod 10; L.Add(d); m:=m div 10 end; var a:=L.Where(x->x<>0).Distinct.ToArray; var k:=a[0]; if a.Length>1 then for var i:=1 to a.Length-1 do k:=NOK(k,a[i]); Range(k,n,k).Println; end.
Как это работает? Если число делится на каждое из нескольких чисел, то оно делится и на НОД этих чисел, Функция НОД позволяет найти НОД пары чисел, а её применение несколько раз позволит найти НОД для необходимого набора чисел. Создаем объект типа "список целых" и цифра за цифрой помещаем туда числа, совпадающие с цифрами заданного числа n. Затем просматриваем список и все уникальные элементы, за исключением нуля, заносим в массив а. Далее вычисляем НОД для всех элементов полученного массива. Понятно, что первым в последовательности искомых чисел будет стоять НОД, а далее пойдут числа, которые будут увеличиваться каждый раз на НОД, пока не достигнут n.
var red = [1, 3, 5, 7, 9, 12, 14, 16, 18, 19, 21, 23, 25, 27, 30, 32, 36, 34];
let num = 0;
let color;
let chet;
let col;
let dyzh;
let n18 = "";
function Rnd() {
num = Math.floor(Math.random() * 37);
definition();
}
function definition() {
if (num != 0) {
if (red.includes(num)) {
color = "красное";
}
else {
color = new String("черное");
}
if (num % 2 == 0) {
chet = "четное";
}
else {
chet = "нечетное";
}
dyzh = Math.ceil(num / 12);
col = num % 3;
if ((num >= 1) && (num <= 18)) {
n18 = "от 1 до 18";
}
else {
n18 = "от 19 до 36";
}
}
}
function print() {
if (num != 0) {
let message = String(num) + ", " + color + ", " + chet + ", " + n18 + ", " + letnum(col) + " колонка, " + letnum(dyzh) + " дюжина";
alert(message);
}
else {
alert("zero");
}
}
function letnum(i) {
if (i == 1) return "первая";
if (i == 2) return "вторая";
if (i == 0) return "третья";
}
Rnd();
print();