База ответов ИНТУИТ

Основы информатики и программирования

<<- Назад к вопросам

Данная программа:
public class Gcd {    public static void main(String[] args) throws Exception {        int x = Xterm.inputInt("x -> ");        int y = Xterm.inputInt("y -> ");        Xterm.print("gcd(" + x + "," + y + ") =");        while ( (x != 0) && (y != 0) ) {            if (x >= y) x -= y;            else        y -= x;        }         Xterm.println(" " + (x+y));    }}
находит наибольший общий делитель gcd(x,y) двух целых неотрицательных чисел x и y:

(Отметьте один правильный вариант ответа.)

Варианты ответа
не равных одновременно единице
равных одновременно нулю
равных одновременно двум
не равных одновременно нулю(Верный ответ)
Похожие вопросы
Данная программа:
public class FibIv1 {    public static void main(String[] args) throws Exception {            int n = Xterm.inputInt("Введите n -> ");        Xterm.print("f(" + n + ")");        if (n < 0) {            Xterm.print(" не определено\n");        } else if (n < 2) {            Xterm.println(" = " + n);        } else {            long i = 0;              long j = 1;              long k;            int  m = n;              while (--m > 0) {                k  = j;                j += i;                i  = k;            }	                Xterm.println(" = " + j);        }    }}
печатает n-ое число Фибоначчи и имеет:
Данная программа:
public class First1{    public static void main(String[] args) throws Exception {        int x0 = Xterm.inputInt("x0 ->");        int y1 = 0, y2 = 0;        try {            while (true) {                int x = Xterm.inputInt("x -> ");                y2 += 1;                if ( (y1 == 0) && (x == x0) )                    y1 = y2;            }        } catch (Exception e) {            Xterm.println("\nn = " + y1);        }	        }}
определяющую номер f первого элемента, равного Xo, в последовательности:
Что делает данная программа:
public class MulI {    public static void main(String[] args) throws Exception {            int a = Xterm.inputInt("a -> ");        int b = Xterm.inputInt("b -> ");        int x = a, y = b, z = 0;        while (y > 0) {             if ((y&1) == 0) {                y >>>= 1; x +=  x;            } else {                y  -=  1; z +=  x;            }        }        Xterm.println("a * b = " + z);    }}
:
В данном случае:
public class Gcd {    public static void main(String[] args) throws Exception {        int x = Xterm.inputInt("x -> ");        int y = Xterm.inputInt("y -> ");        Xterm.print("gcd(" + x + "," + y + ") =");        while ( (x != 0) && (y != 0) ) {            if (x >= y) x -= y;            else        y -= x;        }         Xterm.println(" " + (x+y));    }}
сохранение инварианта после выполнения тела цикла следует из:
Данная программа:
public class First1{    public static void main(String[] args) throws Exception {        int x0 = Xterm.inputInt("x0 ->");        int y1 = 0, y2 = 0;        try {            while (true) {                int x = Xterm.inputInt("x -> ");                y2 += 1;                if ( (y1 == 0) && (x == x0) )                    y1 = y2;            }        } catch (Exception e) {            Xterm.println("\nn = " + y1);        }	        }}
по достижению конца вводимой последовательности:
Какую функцию надо взять в качестве ограничивающей, чтобы правильность данной программы:
public class Gcd {    public static void main(String[] args) throws Exception {        int x = Xterm.inputInt("x -> ");        int y = Xterm.inputInt("y -> ");        Xterm.print("gcd(" + x + "," + y + ") =");        while ( (x != 0) && (y != 0) ) {            if (x >= y) x -= y;            else        y -= x;        }         Xterm.println(" " + (x+y));    }}
легко могла быть доказана:
Данная программа:
public class Sqrt3 {    public static void main(String[] args) throws Exception {        int a, b, n;        n = Xterm.inputInt("n -> ");        a = 0;         b = n+1;        while (a+1 != b) {            int c = (a+b)/2;            if (c*c <= n) a = c;            else          b = c;        }         Xterm.println("sqrt(" + n + ") = " + a);    }}
находит приближенное значение квадратного корня:
Данная программа:
public class MaxArr {    public static void main(String[] args) throws Exception {            int n, i, a[];        n = Xterm.inputInt("Введите длину массива n -> ");        a = new int[n];        for (i=0; i<n; i++)            a[i] = Xterm.inputInt("Введите a[" + i + "] -> ");        int max = a[0];        for (i=1; i<n; i++)            if (a[i] > max)                max = a[i];        Xterm.println("Максимальный элемент массива = " + max);    }}
печатает:
По достижению конца вводимой последовательности данной программой:
public class First1{    public static void main(String[] args) throws Exception {        int x0 = Xterm.inputInt("x0 ->");        int y1 = 0, y2 = 0;        try {            while (true) {                int x = Xterm.inputInt("x -> ");                y2 += 1;                if ( (y1 == 0) && (x == x0) )                    y1 = y2;            }        } catch (Exception e) {            Xterm.println("\nn = " + y1);        }	        }}
управление передается на:
Данная программа:
public class FactIv1 {    public static void main(String[] args) throws Exception {            int n, i, k;        n = Xterm.inputInt("Введите n -> ");        i = k = 1;        while (i <= n) {            k *= i;            i += 1;        }        Xterm.println("" + n + "! = " + k);    }}
вычисляет: