Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Marina_P
8 / 8 / 0
Регистрация: 11.02.2013
Сообщений: 69
Завершенные тесты: 1
#1

Задача на сообразительность - C++

14.07.2013, 13:17. Просмотров 991. Ответов 13
Метки нет (Все метки)

На собеседовании был задан следующий вопрос.
Дан псевдокод бесконечного цикла.
int x;
x=....
while(true)
{
x=....
printf("%d,"x);
}
какое значение или выражение нужно присвоить х, чтобы цикл все время выдавал 6,7,6,7....?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.07.2013, 13:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задача на сообразительность (C++):

Задача на сообразительность - MySQL
create table prodl( np serial PRIMARY KEY , bname character(10), -- имя ребенка ...

Задача на сообразительность - HTML, CSS
Собственно сам документ <!doctype html> <html> <head> <meta charset="utf-8"> <title>Просто страница</title> <style> html,...

Задача на сообразительность (реально ли это?!) - Математический анализ
Имеется такая вот формула: y = x * e^x Как выразить из нее x? x = ?

Массивы[] , на логику и сообразительность ! - Java SE
Допустим я с помощью for(int i = 0 бла бла бла) заполняю статический одномерный массив размером . У меня их 2 штуки и цифра 100 которые...

Тест на сообразительность в базе данных MS Access - MS Access
Помогите решить задание. Очень нужно. В базе данных AZone доступны 4 таблицы: • Directions - -список напралвнеий (терапевтических...

Задача: В некотором государстве ввели компьютерный паспорт гражданина.(задача) - Pascal
Доброго времени суток,форумчане. Хотелось бы попросить помощи в решении одной задачи от умных голов. Задача: В некотором...

13
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
14.07.2013, 13:23 #2
C++
1
2
3
4
5
6
int x;
x=7;
while(true){
  x^=1;
  printf("%d,", x);//запятой не было!
}
не рано ли по собеседованиям ходить?

Добавлено через 3 минуты

Не по теме:

Цитата Сообщение от Marina_P Посмотреть сообщение
Задача на сообразительность
по-моему, это задачка на знание циклов

2
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
14.07.2013, 13:27 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <cstdio>
 
int main()
{
    int x;
    x=7;
    while(true)
    {
     x= 6 + !(x%2);
     printf("%d,",x);
    }
}
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
14.07.2013, 13:29 #4
Kuzia domovenok, добавлен один оператор
Dani, добавлено три оператора
0
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
14.07.2013, 13:31 #5
Kuzia domovenok, 1) это первое, что пришло мне в голову. 2) проблему ТС решает. 3) я вижу у кого сколько операторов добавлено.
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
14.07.2013, 13:50 #6
Цитата Сообщение от Dani Посмотреть сообщение
Kuzia domovenok, 1) это первое, что пришло мне в голову. 2) проблему ТС решает. 3) я вижу у кого сколько операторов добавлено.
Да претензий то собственно нет. Просто я считаю, на собеседовании ожидали увидеть некое изящное и оптимизированное решение. Иначе можно было бы выдать что-нибудь через if(x==6)...
1
Убежденный
Системный программист
Эксперт С++
15632 / 7141 / 1130
Регистрация: 02.05.2013
Сообщений: 11,582
Записей в блоге: 1
Завершенные тесты: 1
14.07.2013, 13:58 #7
В теле цикла:
C++
1
x = (x == 6 ? 7 : 6);
2
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
14.07.2013, 14:01 #8
Цитата Сообщение от Убежденный Посмотреть сообщение
x = (x == 6 ? 7 : 6);
тоже 3 оператора, а x^=1; один оператор. Оптимизация!
1
Croessmah
14.07.2013, 14:02
  #9

Не по теме:

Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
тоже 3 оператора, а x^=1; один оператор. Оптимизация!
Да никто с Вами не спорит. Люди просто выкладывают другие решения. Творческий поиск!

2
Thinker
Эксперт С++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
14.07.2013, 14:09 #10
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
C++
1
  x^=1;

Не по теме:

тоже люблю такие компактные штучки

1
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
14.07.2013, 20:47 #11
x^=1 а что происходит? ^ - Побитовое исключающее ИЛИ (XOR). и что оно делает?
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
14.07.2013, 20:53 #12
Цитата Сообщение от soican Посмотреть сообщение
а что происходит?
0110::6^
0001::1=
0111::7
и наоборот
0111::7^
0001::1=
0110::6
Т.е. Эта операция инвертирует младший бит, превращая 6 в 7, а 7 в 6

number=number^mask
Оператор Ксор Инвертирует в числе все биты числа, которым соответствуют единичные биты маски
и оставляет неизменными те биты, которым соответствуют нулевые биты маски
0
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
14.07.2013, 21:11 #13
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Эта операция инвертирует младший бит
насколько я понял из Викепедий, эта операция меняёт всё что движется в случае 1 и 1 = 0 , 1 и 0 =1; 0 и 0 = 0;
C++
1
2
3
4
5
6
7
8
 
       0101 (decimal 5)
   XOR 0011 (decimal 3)
     = 0110 (decimal 6)
 
       0010 (decimal 2)
   XOR 1010 (decimal 10)
     = 1000 (decimal 8)
0
Kastaneda
Форумчанин
Эксперт С++
4655 / 2863 / 228
Регистрация: 12.12.2009
Сообщений: 7,275
Записей в блоге: 2
Завершенные тесты: 1
14.07.2013, 21:32 #14

Не по теме:

Цитата Сообщение от Убежденный Посмотреть сообщение
x = (x == 6 ? 7 : 6);
Гениально Самое примитивное решение "в лоб", но надо еще уметь его увидеть, потому что мозг сразу начинает выдавать такое, что без поллитры не осилишь



вот мой вариант
C++
1
2
3
4
5
6
7
 int x;
 x = 7;
 while(true)
 {
     x = 13 - x;
     printf("%d,", x);
 }
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.07.2013, 21:32
Привет! Вот еще темы с ответами:

Задача на перебор вариантов. Задача Л.Эйлера. Про чиновника - PascalABC.NET
Задача Л.Эйлера. Некий чиновник купил лошадей и быков на сумму 1770 талеров. За каждую лошадь он уплатил по 31 талеру, а за каждого быка по...

Задача на k-тую цифру последовательности, задача на схему Горнера. - Pascal
Ну, собственно опять прошу помощи... Задача 1: Определить k-тую цифру последовательности 1234567891011121314…, в которой выписаны подряд...

Первая смешанная задача для волнового уравнения на отрезке (задача о колебаниях ограниченной струны) методом Фурье - Дифференциальные уравнения
Решить первую смешанную задачу для волнового уравнения на отрезке (задача о колебаниях ограниченной струны) методом Фурье ...

Задача о размещении весов по ящикам (задача о рюкзаках) - Delphi
Есть упорядоченный по невозрастанию набор весов предметов w1..wn, которые необходимо распределить по ящикам способным выдержать вес V,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Yandex
Объявления
14.07.2013, 21:32
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru