Если я не ошибаюсь, то двоек здесь 1997, т. к если из 10 в степени 2000 вычесть 10 в степени 3, то получиться три нуля и 1997 двоек, а когда прибавляем 10 в степени 2017 количество двоек не увеличивается и не уменьшается
10 - это 3 в троичной системе счисления
-13+3 = -10
-10+3^2 = -10+9 = -1
-1+3^3 = -1+27 = 26
26+3^4 = 26+81 = 107
107+3^5 = 107+243 = 350
350+3^6 = 350+729 = 1079
<span><span><span>Нужно вычислить значение логического выражения при всех возможных значениях логических величин X, У и Z:
а) не (X или У) и (не X или не Z);
б) не (не X и У) или (X и не Z);
в) X или не У и не (X или не Z). </span></span></span>
#include <stdio.h>
int main()
{
int N;
char c;
printf("Исходное направление робота (n,w,s,e): ");
scanf("%c",&c);
printf("Команда (0,1,-1,2,-2): ");
scanf("%d",&N);
while (N != 0){
switch (N) {
case 1 : break;
case -1:
switch (c) {
case 'n' : c = 's'; break;
case 'w' : c = 'e'; break;
case 's' : c = 'n'; break;
case 'e' : c = 'w'; break;
};
break;
case 2 :
switch (c) {
case 'n' : c = 'e'; break;
case 'w' : c = 'n'; break;
case 's' : c = 'w'; break;
case 'e' : c = 's'; break;
};
break;
case -2:
switch (c) {
case 'n' : c = 'w'; break;
case 'w' : c = 's'; break;
case 's' : c = 'e'; break;
case 'e' : c = 'n'; break;
};
break;
}
printf("c = %c\n", c);
printf("Команда (0,1,-1,2,-2): ");
scanf("%d",&N);
}
return 0;
}
Пример:
<span>Исходное направление робота (n,w,s,e): n
Команда (0,1,-1,2,-2): 2
c = e
Команда (0,1,-1,2,-2): 1
c = e
Команда (0,1,-1,2,-2): -2
c = n
Команда (0,1,-1,2,-2): -1
c = s
Команда (0,1,-1,2,-2): 0</span>