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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
[CN]Defender
1 / 1 / 0
Регистрация: 25.09.2009
Сообщений: 56
#1

Написать программу на языке С, которая рекурсивно вычисляет количество единиц в двоичном коде заданного пользователем натурального числа - C++

03.10.2009, 16:35. Просмотров 1229. Ответов 3
Метки нет (Все метки)

помогите плиз

Добавлено через 12 минут
Операция n := n & (n - 1) уничтожает крайнюю справа единицу в бинарном представлении числа n. Следует выполнять эту операцию пока n не станет равным 0, подсчитывая число раз ее выполнения. Найденное количество операций будет равняться количеству единиц в двоичном представлении числа n. Рекурсивный вариант функции на С++, например может быть таким:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<iostream>
unsigned long I(unsigned long);
int main()
{
unsigned long n;
std::cout<<"Vvedite n=";
std::cin>>n;
std::cout<<"\n="<<I(n)<<"\n";
return 1;
}
//*********************************
unsigned long I(unsigned long n)
{if(n==0) return 0;
else return(1+I(n&(n-1)));}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2009, 16:35     Написать программу на языке С, которая рекурсивно вычисляет количество единиц в двоичном коде заданного пользователем натурального числа
Посмотрите здесь:

Написать программу, которая вычисляет количество цифр во введенном пользователем числе - C++
Ваще не как... надо самы простой способ

Написать функцию, которая для заданного числа Х вычисляет количество единичных битов в этом числе - C++
Написать функцию, которая для заданного числа Х вычисляет количество единичных битов в этом числе, используя побитовые операции и функции...

Написать программу которая выводить все четные числа из заданного пользователем диапазона. - C++
Помогите, вообще в рекурсии не разбираюсь( Программы должны быть обязательно написаны рекурсией( Задание 1 Написать программу...

Напишите функцию, которая вычисляет факториал для заданного натурального числа - C++
аголовок функции должен быть следующим: int factorial(int n); Напишите программу, которая получает от пользователя два натуральных числа a...

Написать программу на языке С + + которая вычисляет условия: - C++
Написать программу на языке С + + которая вычисляет условия: Вот первое условие: http://www.cyberforum.ru/attachments/281524d1371057949...

Написать программу, которая для натурального n вычисляет сумму степеней - C++
1. Написать программу, которая для натурального n вычисляет сумму степеней: (1/1) в степени n + (1/2) в степени n + ...+(1/n) в степени n ...

Написать программу которая вычисляет объем параллелепипеда на языке C++ - C++
1) Написать программу вычисления объема параллелепипеда. Ниже представлен рекомендуемый вид экрана во время работы программы (данные,...

Определить, каких цифр больше в двоичном представлении натурального числа N-нулей и единиц - C++
Определить, каких цифр больше в двоичном представлении натурального числа N-нулей и единиц. Циклический алгоритм. Код не надо, только...

Написать программу которая вычисляет сумму первых 3-х положительных чисел из любых 20 введены пользователем... - C++
Написать программу которая вычисляет сумму первых 3-х положительных чисел из любых 20 введены пользователем... я так понял что это с...

Определить, каких цифр больше в двоичном представлении натурального числа N – нулей или единиц - C++
Определить, каких цифр больше в двоичном представлении натурального числа N – нулей или единиц.


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Monte-Cristo
2787 / 1373 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
03.10.2009, 17:12     Написать программу на языке С, которая рекурсивно вычисляет количество единиц в двоичном коде заданного пользователем натурального числа #2
а на C так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<stdio.h>
 
unsigned long I(unsigned long);
int main()
{
unsigned long n;
printf("Vvedite n=");
scanf("%u", &n);
printf("\n=%u\n",I(n));
return 1;
}
//*********************************
unsigned long I(unsigned long n)
{if(n==0) return 0;
else return(1+I(n&(n-1)));}
[CN]Defender
1 / 1 / 0
Регистрация: 25.09.2009
Сообщений: 56
03.10.2009, 17:18  [ТС]     Написать программу на языке С, которая рекурсивно вычисляет количество единиц в двоичном коде заданного пользователем натурального числа #3
большое спасибо!!!

Добавлено через 3 минуты
Monte-Cristo, а это уже вся прога?
Monte-Cristo
2787 / 1373 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
03.10.2009, 17:42     Написать программу на языке С, которая рекурсивно вычисляет количество единиц в двоичном коде заданного пользователем натурального числа #4
[CN]Defender, ну да. А что?

p.s: в данном исходники лишь заменены приницп вывода на экран: вместо cin, cout (С++) используются функции scanf(), printf() (С).

p.p.s: у тебя не компилируется?
Yandex
Объявления
03.10.2009, 17:42     Написать программу на языке С, которая рекурсивно вычисляет количество единиц в двоичном коде заданного пользователем натурального числа
Ответ Создать тему
Опции темы

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