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

Задание с собеседования (циклы) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывести на экран все строки данного массива одну за другой в виде целой строки http://www.cyberforum.ru/cpp-beginners/thread968192.html
Дан двумерный массив , состоящий из букв. 5 строк и 7 столбцов. Вывести на экран все строки данного массива одну за другой в виде целой строки. Что-то вроде шифрования методом простой перестановки.
C++ Вывести массу данного тела в килограммах Единицы массы пронумерованы следующим образом: 1 - граммы, 2 - тонна, 3 - центнер. Дан номер единицы массы и масса тела М в этих единицах (вещественное число). Вывести массу данного тела в... http://www.cyberforum.ru/cpp-beginners/thread968167.html
C++ Проверит программу,места ошибок указаны,нужно разобраться
Здравствуйте,нужна помощь,спасибо #include <iostream> #include <math.h> #include <stdio.h> #include <stdlib.h> #include <stdint.h> const int M=50; int main(int argc, char* argv) {
Напишите программу в С для вычисления среднего арифметического для 3 чисел C++
Имею код, но он не работает. Что делать!? Помогите! int main() { float x,y,z,p; printf("Write down x,y,z:"); scanf("%g%g%g", &x,&y,&z); p==(x+y+z)/3; ...
C++ как проверить принадлежность числа к последовательности чисел http://www.cyberforum.ru/cpp-beginners/thread968150.html
например в цикле надо проверять каждое 2^n (два в степени n) число. for (int i = 0 ; i < 1000; i++){ if (//как поставить условие отбора ){ } }
C++ Найти результат работы функции /*Есть функция F(x)=5cos(x)-2sin(x). Надо найти сред.ариф. тех значений, которые функция принимает при значениях аргумента (то есть значениях x) в диапазоне с шагом 0.1. Делать через функцию.*/... подробнее

Показать сообщение отдельно
MrGluck
Модератор
Эксперт CЭксперт С++
7418 / 4533 / 673
Регистрация: 29.11.2010
Сообщений: 12,287
03.10.2013, 18:09
Я так понял, ТС хочет сказать про функцию
C++
1
2
3
4
5
6
7
8
9
10
int FuncName (int m)
{
    int sum=0;
    while ( m != unsigned(-1))
    {
        m = (m+1) | m;
        sum++;
    }
    return sum;
}
Там подсчитывается и возвращается число итераций вида m = m+1 | m до тех пор, пока m не переполнит максимальное значение типа int.

Добавлено через 14 минут
Цитата Сообщение от MrGluck Посмотреть сообщение
Там подсчитывается и возвращается число итераций вида m = m+1 | m до тех пор, пока m не переполнит максимальное значение типа int.
Это лишь в случае с положительным числом типа int.
Сначала приравнивается к наименьшему числу типа 2*n+1, которое превосходит наше m, далее идет обычное приращение типа m = 2*m+1
То есть сначала заполняет все 0 в представлении числа в двоичной форме если необходимо, а далее дорисовывает к этому представлению 1 (это и есть m = 2*m+1).
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru