Int[] arr = new int[] { 3, 2, 1, 5, 6 }; int min = arr[0]; int min_ind = 0; for(int i=1;i<arr.Length;i++) { if (arr[i] < min) { min = arr[i]; min_ind = i; } } for (var i = min_ind+1; i < arr.Length; i++) arr[i] = 0; for (var i =0; i < arr.Length; i++) Console.Write(arr[i]+" "); Console.ReadKey();
Вычислим остатки от деления обоих чисел на 9, для этого заметив, что у числа 10a + c такой же остаток, что и у a + c. Тогда можно, считывая цифру за цифрой, получить остаток для всего числа. Дальше проверяем, чем равно произведение остатков: если делится на 9, то произведение делится на 9, иначе не делится.
function mod9(f: text): integer; var c: char; rem: integer; begin rem := 0; while not eoln(f) do begin read(f, c); rem := (rem + ord(c) - ord('0')) mod 9; end; readln(f); mod9 := rem; end;
var f: text; a: integer;
begin assign(f, 'input.txt'); reset(f); a := mod9(f) * mod9(f); close(f); assign(f, 'output.txt'); rewrite(f); writeln(f, a); if a mod 9 = 0 then write(f, 'YES') else write(f, 'NO'); close(f); end.