Забыли пароль?
Запросите новый здесь.

Автор темы: Vova
ID темы: 1772
Информация:
Тема содержит 9 сообщения, была просмотрена 3144 раз.
Просмотр темы
PHP-Fusion Russia » Разное » Флуд
 Распечатать тему
Задачка на с++
Vova
Скачать исходники  Код
int main() {
int i= ???;
int j = -i;

if (i >= 0) exit(0);
if (j >=0) exit(0);

cout<<"I win!";
}





Какое значение i должно быть.
Изменил(а) Vova, 01.11.2013 08:28
 
Web
mirivlad
мне кажется тут может быть i в восьмеричной системе счисления. Не помню уже как там отрицательные числа отображаются.
И как вариант - i любой. Так как вывода текста при любом целом i не будет.
Изменил(а) mirivlad, 01.11.2013 08:32
 
Web
Vova
mirivlad написал:

для чего значение то? чтобы вывелось I win!? тогда любое. При данных условиях для вывода сообщения i не существует, следовательно i может быть любым.


Только одно. Другие не будут. Чтобы вывелось слово.
 
Web
mirivlad
Vova написал:

mirivlad написал:

для чего значение то? чтобы вывелось I win!? тогда любое. При данных условиях для вывода сообщения i не существует, следовательно i может быть любым.


Только одно. Другие не будут. Чтобы вывелось слово.

ха. а двоичное тоже не катит? ab как кстати в сях двоичные системы счисления сичтаются и сравниваются?
 
Web
Vova
mirivlad написал:

Vova написал:

mirivlad написал:

для чего значение то? чтобы вывелось I win!? тогда любое. При данных условиях для вывода сообщения i не существует, следовательно i может быть любым.


Только одно. Другие не будут. Чтобы вывелось слово.

ха. а двоичное тоже не катит? ab как кстати в сях двоичные системы счисления сичтаются и сравниваются?


Думай. Все катит. Да.

Решил?
Изменил(а) Vova, 01.11.2013 09:34
 
Web
FILON
Скачать исходники  Код
#include "iostream"

using namespace std;

void main() {
   int i = INT_MIN;
   int j = -i;

   if (i >= 0) { exit(0); }
   if (j >= 0) { exit(0); }

   cout<<"Level cleared!"<<endl;

   system("pause");
}




INT_MIN в моем случае равно -2 147 483 648 (int – 4 байта). При умножении на -1 первый бит превращается в 1, а так как тип знаковый, то число уходит в отрицательный диапазон.
What's common between Halloween and Christmas? Every programmer knows: 31 oct = 25 dec.
x1
 
Vova
Это число: 0x80000000:
http://codepad.or...

int тип = -(-2147483648) == -2147483648.

Лови:
2.firepic.org/2/images/2013-11/01/apwbi2824z9h.png
Изменил(а) Vova, 01.11.2013 14:51
 
Web
FILON
У нас signed int, поэтому значащая часть – 31 бит. 32 бит отдан под знак. 33 бита вообще не существует в 4 байтном представлении.
What's common between Halloween and Christmas? Every programmer knows: 31 oct = 25 dec.
 
Vova
FILON написал:

У нас signed int, поэтому значащая часть – 31 бит. 32 бит отдан под знак. 33 бита вообще не существует в 4 байтном представлении.


Я ошибся при написании.
 
Web

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум:
syntax error, unexpected '+'
Топ 5 пользователей форума
Alex Alex (1,197)   Zaxap Zaxap (1,078)   Vova Vova (877)   Pisatel Pisatel (678)   util util (666)