Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.58/12: Рейтинг темы: голосов - 12, средняя оценка - 4.58
Ilona1993
1 / 1 / 1
Регистрация: 15.05.2013
Сообщений: 26
1

Функция: найти максимальное совершенное число в последовательности

22.05.2013, 18:33. Просмотров 2315. Ответов 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;}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2013, 18:33
Ответы с готовыми решениями:

Алгоритм(Найти максимальное совершенное число, которое в то же время меньше введенного N)
Найти максимальное совершенное число, которое в то же время меньше введенного N Справка: ...

Дано натуральное число. Заменить любую из его цифр так, чтобы получилось максимальное совершенное число.
Дано натуральное число N. Если это сложно, заменить любую из его цифр (только одну) так, чтобы...

Найти максимальное число в последовательности
Помогите немного=) Прога фурычит, вот только хотелось бы узнать, как инициализировать max более...

Найти в введенной последовательности чисел максимальное число.
вводятся числа , пока не будет введено нечетное число. Найти максимальное из них. Через циклы

Вводится последовательность из N целых чисел. Найти максимальное простое число в последовательности
Прошу помочь с этой задачкой. Всю ночь просидел, так толком ничего и не вышло. Вводится...

12
Мимино
183 / 154 / 34
Регистрация: 22.05.2013
Сообщений: 450
Записей в блоге: 1
22.05.2013, 18:49 2
Я правильно понимаю,
int N - сколько раз мы будем вводить числа для проверки на совершенство
temp - число, которое мы вводим для проверки на совершенство.
Кстати, в пределах до 1 000 000 000 000 существует всего 7 таких чисел:
6 28 496 8128 33550336 8589869056 137438691328
Это нужно все вручную перебирать?
Как звучит первоначальная задача?
0
Ilona1993
1 / 1 / 1
Регистрация: 15.05.2013
Сообщений: 26
22.05.2013, 18:59  [ТС] 3
.Вводится последовательность из N целых чисел. Найти максимальное совершенное число в последовательности, если таких несколько, вывести их количество (функцией оформить проверку числа: результатом функции будет 1 – число совершенное, 0 - нет). (Совершенное число – это целое число, у которого сумма всех делителей, меньших его самого, равна этому числу).
0
Мимино
183 / 154 / 34
Регистрация: 22.05.2013
Сообщений: 450
Записей в блоге: 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;
 
}
Результат:
1
Миниатюры
Функция: найти максимальное совершенное число в последовательности  
Ilona1993
1 / 1 / 1
Регистрация: 15.05.2013
Сообщений: 26
22.05.2013, 19:23  [ТС] 5
нее надо из введенных чисел найти максимальное совершенное
0
Мимино
183 / 154 / 34
Регистрация: 22.05.2013
Сообщений: 450
Записей в блоге: 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;}
1
Ilona1993
1 / 1 / 1
Регистрация: 15.05.2013
Сообщений: 26
22.05.2013, 20:24  [ТС] 7
спасибоя возьму на заметку)))а можешь еще одну задачу посмотреть я там немного запуталась
0
Мимино
183 / 154 / 34
Регистрация: 22.05.2013
Сообщений: 450
Записей в блоге: 1
22.05.2013, 20:27 8
Цитата Сообщение от Ilona1993 Посмотреть сообщение
спасибоя возьму на заметку)))а можешь еще одну задачу посмотреть я там немного запуталась
Показывай.
З.Ы. Убедительная просьба: не показывай преподавателю обе программы, выбери одну. Очевидно, что писались они 2-мя разными людьми.
0
Ilona1993
1 / 1 / 1
Регистрация: 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 минуты
а надо ввести номер и что бы вышла музыкальная нота....
1
henecs
18 / 18 / 11
Регистрация: 19.05.2013
Сообщений: 135
22.05.2013, 20:41 10
Цитата Сообщение от Ilona1993 Посмотреть сообщение
По введенному номеру музыкальной ноты вывести ее словесное наименование
на форуме есть решение этой задачи
0
Ilona1993
1 / 1 / 1
Регистрация: 15.05.2013
Сообщений: 26
22.05.2013, 20:47  [ТС] 11
Цитата Сообщение от henecs Посмотреть сообщение
на форуме есть решение этой задачи
так решение не до конца и я исправить не могу
0
Мимино
183 / 154 / 34
Регистрация: 22.05.2013
Сообщений: 450
Записей в блоге: 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;
}
Результат:
1
Миниатюры
Функция: найти максимальное совершенное число в последовательности  
Ilona1993
1 / 1 / 1
Регистрация: 15.05.2013
Сообщений: 26
22.05.2013, 21:08  [ТС] 13
да ты мозг.....спасибо большое)))))
0
22.05.2013, 21:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2013, 21:08

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

Определить максимальное и минимальное число последовательности
1. Написать программу, которая определяет максимальное и минимальное число из введенной с...

В последовательности натуральных чисел определить максимальное число, оканчивающееся на 5
Здравствуйте! Совсем недавно начал изучать C++, 2 недели. И мне еще не все понятно в языке. т.к....


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

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