#include <iostream> #include <cstdlib> #include <ctime> int main() { using namespace std; cout << "Enter size of array: "; int N; cin >> N; int * ARR = new int[N]; srand(time(0)); int i; for (i = 0; i < N; ++i) ARR[i] = rand() % 100 + 1;
cout << "Here is an original array:\n"; for (i = 0; i < N; ++i) cout << ARR[i] << " "; cout << endl;
int temp = ARR[N - 1]; for (i = N - 1; i > 0; --i) ARR[i] = ARR[i - 1]; ARR[0] = temp;
cout << "\nHere is a new array:\n"; for (i = 0; i < N; ++i) cout << ARR[i] << " "; cout << endl;
Решить эту задачу нам информация, приведенная в условиях задачи после сообщения о том, что островитянин дал ответ на мой вопрос: мое замечание о том, что после его ответа я узнал истинный ответ на свой вопрос. Предположим, что островитянин, с которым я разговаривал (обозначим его А), ответил на мой вопрос "да". Мог бы я после такого ответа знать, что по крайней мере один из встретившихся мне островитян рыцарь? Разумеется, нет. Действительно, А мог оказаться рыцарем и на мой вопрос правдиво ответить "да" (его ответ соответствовал бы истине, поскольку по крайней мере один островитянин, а именно А - рыцарь). Оба островитянина могли оказаться лжецами. В этом случае А, солгав, ответил бы на мой вопрос "да" (что было бы ложью, так как ни один из островитян не был рыцарем). Таким образом, получив от А ответ "да", я не смог бы узнать истинный ответ на свой вопрос. Но, как говорится в условиях задачи, после ответа А мне стал известен правильный ответ на заданный мною вопрос. Следовательно, А мог ответить только "нет". Разберемся теперь, кто такие островитянин А и его приятель, которого мы обозначим В. Если бы А был рыцарем, то он не мог бы дать правдивый ответ "нет", поэтому А - лжец. Так как его отрицательный ответ ложен, то по крайней мере одни из двух островитян должен быть рыцарем. Следовательно, А - лжец, а В - рыцарь
#include <cstdlib>
#include <ctime>
int main()
{
using namespace std;
cout << "Enter size of array: ";
int N;
cin >> N;
int * ARR = new int[N];
srand(time(0));
int i;
for (i = 0; i < N; ++i)
ARR[i] = rand() % 100 + 1;
cout << "Here is an original array:\n";
for (i = 0; i < N; ++i)
cout << ARR[i] << " ";
cout << endl;
int temp = ARR[N - 1];
for (i = N - 1; i > 0; --i)
ARR[i] = ARR[i - 1];
ARR[0] = temp;
cout << "\nHere is a new array:\n";
for (i = 0; i < N; ++i)
cout << ARR[i] << " ";
cout << endl;
return 0;
}
Решить эту задачу нам информация, приведенная в условиях задачи после сообщения о том, что островитянин дал ответ на мой вопрос: мое замечание о том, что после его ответа я узнал истинный ответ на свой вопрос. Предположим, что островитянин, с которым я разговаривал (обозначим его А), ответил на мой вопрос "да". Мог бы я после такого ответа знать, что по крайней мере один из встретившихся мне островитян рыцарь? Разумеется, нет. Действительно, А мог оказаться рыцарем и на мой вопрос правдиво ответить "да" (его ответ соответствовал бы истине, поскольку по крайней мере один островитянин, а именно А - рыцарь). Оба островитянина могли оказаться лжецами. В этом случае А, солгав, ответил бы на мой вопрос "да" (что было бы ложью, так как ни один из островитян не был рыцарем). Таким образом, получив от А ответ "да", я не смог бы узнать истинный ответ на свой вопрос. Но, как говорится в условиях задачи, после ответа А мне стал известен правильный ответ на заданный мною вопрос. Следовательно, А мог ответить только "нет". Разберемся теперь, кто такие островитянин А и его приятель, которого мы обозначим В. Если бы А был рыцарем, то он не мог бы дать правдивый ответ "нет", поэтому А - лжец. Так как его отрицательный ответ ложен, то по крайней мере одни из двух островитян должен быть рыцарем. Следовательно, А - лжец, а В - рыцарь