Var x, a, b: integer; begin readln(x); a:=0; b:=1; while (x mod 10) > 1 do begin a:=a+(x mod 10); b:=b*2; x:=x div 10; end; writeln(a); write(b); end. Укажите наименьшее из таких чисел x, при вводе которых алгоритм сначала печатает 12, а потом 16.
1616 может: 16 и 16 получаются, например, из числа 979, 9+7=16 и 7+9=16. 169 может: 16 и 9 из числа 881 163 не может, тк должны быть числа 16 и 3, то есть сумма старшего и среднего разряда = 16, а среднего и младшего =3, что не возможно, ведь каждый разряд может быть в промежутке [0;9]. 1916 не может: должны быть числа 19 и 16, а эти числа не могут превышать 18, тк 9+9=18 1619 не может: аналогично 1916 316 не может: числа 3 и 16, аналогично чилу 163 916 не может: числа 9 и 16 могут получится из 188, но по условию 9 и 16 не могут стоять в порядке возрастания /// 116 может: числа 11 и 6 из 651. /// Надеюсь понятно объяснил
//Java class Main { public static void main(String[] args){ System.out.print("Input n: "); int n = new java.util.Scanner(System.in).nextInt(); int[] a = new int[n];
int b = 0; int c = 0; int d;
for (int i = 0; i < a.length; i++) { d = new java.util.Random().nextInt(2); a[i] = new java.util.Random().nextInt(100000); if (d == 0) a[i] = -a[i]; if (a[i] > 0) b+=a[i]; else c+=a[i]; } System.out.println("Positive: " + b); System.out.println("Negative: " + c); } }
при х=2226
Объяснение:
Var
x, a, b, i: integer;
begin
a:=0; b:=1;
i := 0;
repeat begin
inc(i);
x := i;
a:=0; b:=1;
while (x mod 10) > 1 do begin
a:=a+(x mod 10);
b:=b*2;
x:=x div 10;
end;
end;
until (a=12) and (b=16);
Writeln(Format('При x=%d a=%d b=%d', [i, a, b]));
end;