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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
ega005
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 100
#1

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

29.10.2012, 17:48. Просмотров 1392. Ответов 10
Метки нет (Все метки)

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++):

Дано четырехзначное число. Проверить является ли оно "счастливым билетом" - C++
Дано четырехзначное число. Проверить является ли оно "счастливым билетом". Примечание: счастливым билетом называется число, в котором при...

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

Проверить, является ли билет "счастливым" (while) - C++
1)Билет называют «счастливым», если в его номере сумма первых трех цифр равна сумме последних трех. Проверить есть ли билет «счастливым»....

Написать функцию поиска человека по полю "фамилия" в массиве структур "Note" ("Персональная информация") - C++
Вывести из структуры информацию о человеке, чья фамилия введена с клавиатуры #include <iostream> #include <locale> #include...

Написать функцию выбора пунктов меню стрелками "вверх" "вниз" - C++
Доброго всем времени суток.Пожалуйста подскажите как мне справиться с моей проблемой.Нужно написать функцию выбора пунктов меню стрелками...

Напишите функцию, определяющую является ли число простым - C++
2. Напишите функцию, определяющую является ли число простым (Целое число является простым, если оно делится только на 1 и на само себя....

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ega005
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 100
29.10.2012, 18:19  [ТС] #2
Я ведь еще не профессионал, я только начал учиться поступил в универ 1 курс, поэтому здесь и прошу помощи, что бы научиться...
1 задачу я пытался сделать но не могу задать интервал так что бы отпределить в нем счастливые числа
salam
162 / 143 / 12
Регистрация: 10.07.2012
Сообщений: 726
29.10.2012, 19:13 #3
простите за бестактность... такие вещи нужно уметь писать задолго до того, как начинать обучение в университете...
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
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
3 / 1 / 1
Регистрация: 09.10.2012
Сообщений: 25
29.10.2012, 19:21 #5
Цитата Сообщение от salam Посмотреть сообщение
простите за бестактность... такие вещи нужно уметь писать задолго до того, как начинать обучение в университете...
не по теме



А зачем тогда в универ поступать?
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
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
29.10.2012, 20:24 #7
fragnat у тебя не совсем удачное решение, много вложенных циклов. В целом пересмотри решение.
Schizorb
509 / 461 / 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
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
509 / 461 / 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;
    }
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
02.11.2012, 18:13 #11
Цитата Сообщение от Петр1 Посмотреть сообщение
не по теме
А зачем тогда в универ поступать?

Не по теме:

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

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2012, 18:13
Привет! Вот еще темы с ответами:

дано четырехзначное число. если сумма первых 2 цифр=сумме 2 последних, написать "yes", иначе "no" - C++
Вот попробовал написать код но ошибку выдает: #include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; int main() { ...

Написать программу, моделирующую карточную игру "Пьяница" и определяющую, кто из двух игроков выигрывает - C++
помогите. Я не могу понять. Пжлст. С++ Игорь с Артуром играют в &quot;Пьяницу&quot;. Это такая карточная игра, правила которой описаны ниже. В...

Двусвязный список с объектом трех типов: "целое число", "вещественное число", "строка" - C++
Есть проблема. Реализовать двухсвязный список. Каждый элемент списка может содержать один объект. Объект может быть трех типов: &quot;целое...

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


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

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

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