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

Написать функцию, определяющую, является ли число "счастливым" - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
ega005
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 99
29.10.2012, 17:48     Написать функцию, определяющую, является ли число "счастливым" #1
1. Назовём четырёхзначное число счастливым, если произведение цифр этого числа равно их сумме. Например, число 2114 – счастливое, поскольку 2+1+1+4 = 2*1*1*4 = 8. Напишите функцию, которая принимает черырёхзначное число в качестве аргумента и возвращает true, если оно – счастливое, и false – нет. Используя данную функцию, выведите на экран все счастливые числа из диапазона от 1000 до 9999.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.10.2012, 17:48     Написать функцию, определяющую, является ли число "счастливым"
Посмотрите здесь:

C++ дано четырехзначное число. если сумма первых 2 цифр=сумме 2 последних, написать "yes", иначе "no"
C++ Определить, является ли заданное с клавиатуры шестизначное число четным, счастливым
Напишите функцию, определяющую является ли число простым C++
C++ Проверить, является ли билет "счастливым" (while)
C++ Написать функцию выбора пунктов меню стрелками "вверх" "вниз"
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ega005
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 99
29.10.2012, 18:19  [ТС]     Написать функцию, определяющую, является ли число "счастливым" #2
Я ведь еще не профессионал, я только начал учиться поступил в универ 1 курс, поэтому здесь и прошу помощи, что бы научиться...
1 задачу я пытался сделать но не могу задать интервал так что бы отпределить в нем счастливые числа
salam
157 / 138 / 11
Регистрация: 10.07.2012
Сообщений: 709
29.10.2012, 19:13     Написать функцию, определяющую, является ли число "счастливым" #3
простите за бестактность... такие вещи нужно уметь писать задолго до того, как начинать обучение в университете...
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
29.10.2012, 19:19     Написать функцию, определяющую, является ли число "счастливым" #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
#include<iostream> 
 
bool lucky_number(unsigned n) 
{ 
       unsigned s = n; 
       unsigned sum = 0, prois = 1;
       while(s!=0) 
       { 
           sum += s % 10;
           prois *= s % 10;
           s /= 10;  
       }
       if(sum == prois)  
       {
           std::cout << n << " lucky number " << std::endl;  
           return true; 
       } 
       else 
           return false;
}
 
int main( )
{
   unsigned i;  
   unsigned sum = 0, prois = 1;
 
   for ( i = 1000; i <= 9999; i++) 
        lucky_number(i);
       
}
Петр1
 Аватар для Петр1
3 / 1 / 1
Регистрация: 09.10.2012
Сообщений: 25
29.10.2012, 19:21     Написать функцию, определяющую, является ли число "счастливым" #5
Цитата Сообщение от salam Посмотреть сообщение
простите за бестактность... такие вещи нужно уметь писать задолго до того, как начинать обучение в университете...
не по теме



А зачем тогда в универ поступать?
fragnat
 Аватар для fragnat
11 / 11 / 0
Регистрация: 17.12.2009
Сообщений: 77
29.10.2012, 20:17     Написать функцию, определяющую, является ли число "счастливым" #6
Или так
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
#include <iostream>
 
using namespace std;
 
int lucky_numbers(int &a, int &b, int &c, int &d)
{
    if(a+b+c+d == a*b*c*d)
        cout << "числа " << a << " " << b << " " << c  << " " << d << " счастливые" << endl;
};
 
int main()
{
    int a = 1,b = 0,c = 0,d = 0;
 //   cin >> a >> b >> c >> d;
    for (int i = 0; i <= 8; i++ )
   {
        a++;
        lucky_numbers(a,b,c,d);
        for (int m = 0; m <= 8; m++ )
        {
            b++;
            lucky_numbers(a,b,c,d);
 
            for (int n = 0; n <= 8; n++ )
            {
                c++;
                lucky_numbers(a,b,c,d);
 
                for (int k = 0; k <= 8; k++ )
                {
                    d++;
                    lucky_numbers(a,b,c,d);
                }
            }
        }
    }
 
    return 0;
}
2 1 1 4 - это единственные "счастливые" числа?

Добавлено через 37 минут
Оффтоп: Кто подскажет, почему мой код не показывает значения 1124, 1214, 4211 и т.д.? В чем я ошибся?
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
29.10.2012, 20:24     Написать функцию, определяющую, является ли число "счастливым" #7
fragnat у тебя не совсем удачное решение, много вложенных циклов. В целом пересмотри решение.
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
29.10.2012, 20:32     Написать функцию, определяющую, является ли число "счастливым" #8
Цитата Сообщение от fragnat Посмотреть сообщение
В чем я ошибся?
Переменные b, c и d должны обнуляться. У вас в коде, например, d будет меняться от 1 до 6561, а должно до 8.

Вообще зачем лишние переменные-счетчики в цикле for, когда логичнее бы было использовать те же a,b,c и d.

И вызывать функцию нужно только в теле самого вложенного цикла.

А вообще да, решение не оптимальное.
fragnat
 Аватар для fragnat
11 / 11 / 0
Регистрация: 17.12.2009
Сообщений: 77
31.10.2012, 21:05     Написать функцию, определяющую, является ли число "счастливым" #9
Вдруг кому пригодится:
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>
 
using namespace std;
 
int lucky_numbers(int &a, int &b, int &c, int &d)
{
    if(a+b+c+d == a*b*c*d)
        cout << "число " << a << b << c<< d << " счастливое" << endl;
};
 
int main()
{
    int a = 1,b = 0,c = 0,d = 0;
    for (a = 1; a <= 9; a++ )
   {
        lucky_numbers(a,b,c,d);
        for (b = 0; b <= 8; b++ )
        {
            lucky_numbers(a,b,c,d);
 
            for (c = 0; c <= 8; c++ )
            {
                lucky_numbers(a,b,c,d);
 
                for (d = 0; d <= 8; d++ )
                {
                    lucky_numbers(a,b,c,d);
 
                }
                d = 0;
            }
            c = 0;
        }
        b = 0;
    }
 
    return 0;
}
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
02.11.2012, 16:09     Написать функцию, определяющую, является ли число "счастливым" #10
fragnat, закомментил ненужные строчки. Обнуление переменных уже есть (при входе в цикл), и вызовы функции во внешних циклах излишни.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
for (a = 1; a <= 9; a++ )
   {
        //lucky_numbers(a,b,c,d);
        for (b = 0; b <= 8; b++ )
        {
            //lucky_numbers(a,b,c,d);
 
            for (c = 0; c <= 8; c++ )
            {
                //lucky_numbers(a,b,c,d);
 
                for (d = 0; d <= 8; d++ )
                {
                    lucky_numbers(a,b,c,d);
 
                }
                //d = 0;
            }
            //c = 0;
        }
        //b = 0;
    }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2012, 18:13     Написать функцию, определяющую, является ли число "счастливым"
Еще ссылки по теме:

C++ Написать рекурсивную функцию, определяющую, является ли заданное натуральное число простым
C++ Проверить истинность высказывания: "Данное целое число является нечетным трехзначным числом"
Задача "Гигабашня": минимальное расстояние до этажа со счастливым номером C++

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

Или воспользуйтесь поиском по форуму:
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
02.11.2012, 18:13     Написать функцию, определяющую, является ли число "счастливым" #11
Цитата Сообщение от Петр1 Посмотреть сообщение
не по теме
А зачем тогда в универ поступать?

Не по теме:

А что ты ожидал получить от универа? Хотел бы он научиться программированию - начал бы ещё в школе. Хочет сейчас? Тоже дело! Книгу в руки, вижуал студию на комп. А от универа ожидать нечего, не его задача учить кого-то, учиться - задача студента, а универ может зачёт поставить и за неусвоенный материал. Кому это нужно то?

Yandex
Объявления
02.11.2012, 18:13     Написать функцию, определяющую, является ли число "счастливым"
Ответ Создать тему
Опции темы

Текущее время: 13:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru