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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
Ilona1993
1 / 1 / 0
Регистрация: 15.05.2013
Сообщений: 26
#1

функции (вывести самое большое совершенное число) - C++

22.05.2013, 18:33. Просмотров 1815. Ответов 12
Метки нет (Все метки)

помогите....надо вывести самое большое совершенное число............
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#include <locale>
 
using namespace std;
 
int control(int t)
 
{
int sum=0;
for (int n=1;n<t; n++) {
    if (t%n==0) {
        sum+=n;
    }
}
return sum;
}
 
int main()
{setlocale(LC_CTYPE, "Russian");
int N,i=1,k=0,temp=0;
cout<<"ВВедите n:";
cin>>N;
for (i=0;i<N;i++) {
    cout<<"Введите число: ";
    cin>>temp;
    if (temp==control(temp))
    {
        cout<<"";
        k++;
    }
}
cout<<"кол-во  совершенных чисел="<<k<<endl;
    
return 0;}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2013, 18:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос функции (вывести самое большое совершенное число) (C++):

Из 12 положительных чисел, найти самое большое число и вывести его порядковый номер - C++
Входной файл: input.txt Выходной файл: output.txt Женя купила 12 яблок и по приходу домой решила узнать массу каждого яблока....

Найти самое большое и самое маленькое число в матрице - C++
нужно найти из этой матрицы само большое и самое маленькое число пожалуйста с коментариями

Найти самое большое число - C++
У меня токой вопрос: Есьт 3 числа, найти самое большое. Как это сделать? Желательно исправить мой вариант.... #include &lt;iostream&gt; ...

Найти самое большое число - C++
Всем доброго дня. У меня токой вопрос: Есьт 4 числа допустим int a = 5; int b = 7; int c = 2; int d = 10;

В массиве найти самое большое симметричное число - C++
Здравствуйте! Помогите, пожалуйста, с задачей: в целочисленном массиве найти самое большое симметричное число.

Одномерные массивы - самое большое по модулю число - C++
Доброе время суток! Ребята, задачка такая интересная, что крышу срывает!!! Описать массив типа double с количеством элементов 25. ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
22.05.2013, 18:49 #2
Я правильно понимаю,
int N - сколько раз мы будем вводить числа для проверки на совершенство
temp - число, которое мы вводим для проверки на совершенство.
Кстати, в пределах до 1 000 000 000 000 существует всего 7 таких чисел:
6 28 496 8128 33550336 8589869056 137438691328
Это нужно все вручную перебирать?
Как звучит первоначальная задача?
Ilona1993
1 / 1 / 0
Регистрация: 15.05.2013
Сообщений: 26
22.05.2013, 18:59  [ТС] #3
.Вводится последовательность из N целых чисел. Найти максимальное совершенное число в последовательности, если таких несколько, вывести их количество (функцией оформить проверку числа: результатом функции будет 1 – число совершенное, 0 - нет). (Совершенное число – это целое число, у которого сумма всех делителей, меньших его самого, равна этому числу).
Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
22.05.2013, 19:09 #4
Так? Даже с "фичей"
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include "stdafx.h"
#include <iostream>
using namespace std;
 
bool perfect(unsigned long);
void mnog(unsigned long);
 
 
int main()
{
    setlocale(LC_ALL, "Russian");
    unsigned long n;
    cout << "Введите диапазон поиска: ";
    cin >> n;
 
    for (unsigned long i = 1; i <= n; i++)
    {
        if (perfect(i) == true)
        {
            cout << "Совершенное число: ";
            mnog(i);
            
        }
    }
 
    system("pause");
    return 0;
}
 
 
bool perfect(unsigned long n)
{
    unsigned long sum = 0;
 
    for (unsigned long j = 1; j <= n / 2; j++)
    {
        if (n % j == 0)
            sum += j;
        
    }
 
    if (sum == n)
        return true;
    else
        return false;
 
}
 
 
void mnog(unsigned long a)
{
    for (unsigned long j = 1; j <= a / 2; j++)
    {
        if (a % j == 0 && j <= a / 2 - 1)
            cout << j << "+";
        if (a % j == 0 && j > a / 2 - 1)
            cout << j << "=" << a;  
        
    }
 
    cout << endl;
 
}
Результат:
Миниатюры
функции (вывести самое большое совершенное число)  
Ilona1993
1 / 1 / 0
Регистрация: 15.05.2013
Сообщений: 26
22.05.2013, 19:23  [ТС] #5
нее надо из введенных чисел найти максимальное совершенное
Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
22.05.2013, 20:13 #6
Цитата Сообщение от Ilona1993 Посмотреть сообщение
нее надо из введенных чисел найти максимальное совершенное
Кстати, в пределах до 1 000 000 000 000 существует всего 7 таких чисел:
6 28 496 8128 33550336 8589869056 137438691328
Это нужно все вручную перебирать?
А если ни одно из введенных чисел не является совершенным? Мой метод отличается лишь тем, что я последовательность N ввожу программно (от 1 до N), а не руками. Ну и вместо количества совершенных чисел выводятся сами эти числа.
З.Ы. Это только мое мнение, но все же... Предположим, что Вы не знаете первые 4 совершенных числа. Разве не глупо вручную вводить 8128 чисел для проверки?

Добавлено через 37 минут
Вот Ваш вариант. Добавил туда определение и вывод максимального, если совершенное число будет найдено. Но я по-прежнему считаю, что это максимум "3" с натяжкой (за старания).
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <locale>
 
using namespace std;
 
int control(int t)
 
{
int sum=0;
for (int n=1;n<t; n++) {
    if (t%n==0) {
        sum+=n;
    }
}
return sum;
}
 
int main()
{setlocale(LC_CTYPE, "Russian");
int N,i=1,k=0,temp=0, max = 0;
cout<<"ВВедите n:";
cin>>N;
for (i=0;i<N;i++) {
    cout<<"Введите число: ";
    cin>>temp;
    if (temp==control(temp))
    {
        if (temp > max)
           max = temp;
        cout<<"";
        k++;
    }
}
cout<<"кол-во  совершенных чисел="<<k<<endl;
if (max > 0)
   cout<<"Максимальное совершенное число="<<max<<endl;
    
return 0;}
Ilona1993
1 / 1 / 0
Регистрация: 15.05.2013
Сообщений: 26
22.05.2013, 20:24  [ТС] #7
спасибоя возьму на заметку)))а можешь еще одну задачу посмотреть я там немного запуталась
Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
22.05.2013, 20:27 #8
Цитата Сообщение от Ilona1993 Посмотреть сообщение
спасибоя возьму на заметку)))а можешь еще одну задачу посмотреть я там немного запуталась
Показывай.
З.Ы. Убедительная просьба: не показывай преподавателю обе программы, выбери одну. Очевидно, что писались они 2-мя разными людьми.
Ilona1993
1 / 1 / 0
Регистрация: 15.05.2013
Сообщений: 26
22.05.2013, 20:41  [ТС] #9
Мимино, По введенному номеру музыкальной ноты вывести ее словесное наименование. Например, 3 – ми.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Note 
{
    static const char* note[8];
 
public:
    static const char* GetNote(int idx) { 
        return (idx <= 8) ? note[idx-1] : ""; 
    }
};
 
const char* Note::note[8] = { "Do", "Re", "Mi", "Fa", "So", "La", "Si", "Do" };
 
int main()
{
 
    for (int i = 1; i < 10; ++i)
        std::cout << Note::GetNote(i) << ' ';
    std::cout << std::endl;
    return 0;
}
Добавлено через 2 минуты
а надо ввести номер и что бы вышла музыкальная нота....
henecs
17 / 17 / 0
Регистрация: 19.05.2013
Сообщений: 135
22.05.2013, 20:41 #10
Цитата Сообщение от Ilona1993 Посмотреть сообщение
По введенному номеру музыкальной ноты вывести ее словесное наименование
на форуме есть решение этой задачи
Ilona1993
1 / 1 / 0
Регистрация: 15.05.2013
Сообщений: 26
22.05.2013, 20:47  [ТС] #11
Цитата Сообщение от henecs Посмотреть сообщение
на форуме есть решение этой задачи
так решение не до конца и я исправить не могу
Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
22.05.2013, 20:56 #12
Цитата Сообщение от Ilona1993 Посмотреть сообщение
Мимино, По введенному номеру музыкальной ноты вывести ее словесное наименование. Например, 3 – ми.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Note 
{
    static const char* note[8];
 
public:
    static const char* GetNote(int idx) { 
        return (idx <= 8) ? note[idx-1] : ""; 
    }
};
 
const char* Note::note[8] = { "Do", "Re", "Mi", "Fa", "So", "La", "Si", "Do" };
 
int main()
{
 
    for (int i = 1; i < 10; ++i)
        std::cout << Note::GetNote(i) << ' ';
    std::cout << std::endl;
    return 0;
}
Добавлено через 2 минуты
а надо ввести номер и что бы вышла музыкальная нота....
Мммм... это так чтоли?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include "stdafx.h"
#include <iostream>
class Note
{
static const char* note[8];
 
public:
static const char* GetNote(int idx) {
return (idx <= 8) ? note[idx-1] : "";
}
};
 
const char* Note::note[8] = { "Do", "Re", "Mi", "Fa", "Sol", "La", "Si", "Do" };
 
int main()
{
int number;
 
for (int i = 1; i < 9; ++i)
std::cout << Note::GetNote(i) << ' ';
std::cout << std::endl;
std::cout << "Enter note number: ";
std::cin >> number;
std::cout << "Note " << number << " is " << Note::GetNote(number) << std::endl; 
system("pause");
return 0;
}
Результат:
Миниатюры
функции (вывести самое большое совершенное число)  
Ilona1993
1 / 1 / 0
Регистрация: 15.05.2013
Сообщений: 26
22.05.2013, 21:08  [ТС] #13
да ты мозг.....спасибо большое)))))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2013, 21:08
Привет! Вот еще темы с ответами:

Найти в массиве самое большое число и заменить его на 9 - C++
3. Ввести с клавиатуры массив из К чисел (К также вводится с клавиатуры). Затем найти в нем самое большое число и заменить его на 9....

Как называется сортировка, которая выводит самое большое число? - C++
как такая сортировка называется если есть?

С++: подсчитать количество знаков и вывести самое большое значение - C++
Ребята, помогите пожалуйста. Задача такая : нужна программа, подсчитывающая количества знаков &quot;:&quot;, &quot;;&quot;, &quot;,&quot; и вывести количество повторений...

Найти из 5 рандомных чисел самое большое и вывести его - C++
подскажите в чем проблема? программа должна найти из 5 рандомных чисел самое большое и вывести его (решать через функцию) #include...


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

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

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