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

Нужно написать решение не знаю как к субботе - C++

Восстановить пароль Регистрация
 
клюква
0 / 0 / 0
Регистрация: 21.02.2011
Сообщений: 4
22.02.2011, 20:26     Нужно написать решение не знаю как к субботе #1
Необходимо проверить делиться веденное число на 3.
Число деться на 3 если сумма его цифр делиться на 3. (3, 9, 6,)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2011, 20:26     Нужно написать решение не знаю как к субботе
Посмотрите здесь:

C++ Не знаю как написать прогу на С++? Напишите поиз
C++ 2 программы, не знаю как написать(
нужно решение к субботе C++
C++ хочу написать прогу не знаю как
C++ Не знаю как написать прогу!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
22.02.2011, 21:13     Нужно написать решение не знаю как к субботе #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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
 
bool check_div_3(int);
 
int main()
{
    int num;
 
    std::cout << "Enter number: ";
    std::cin >> num;
 
    std::cout << "Number " << num << " is";
 
    if (!check_div_3(num))
        std::cout << " not";
 
    std::cout << " divided by 3" << std::endl;
 
    return 0;
}
 
bool check_div_3(int num)
{
    if (num < 0)
        return check_div_3(-num);
 
    if (num >= 10)
    {
        int sum_of_digits = 0;
 
        while (num != 0)
        {
            sum_of_digits += num % 10;
            num /= 10;
        }
 
        return check_div_3(sum_of_digits);
    }
 
    if (num == 0 || num == 3 || num == 6 || num == 9)
        return true;
 
    return false;
}
ping_rulezzz
26 / 26 / 4
Регистрация: 18.02.2011
Сообщений: 51
22.02.2011, 21:26     Нужно написать решение не знаю как к субботе #3
смысл задачи вообще не понял. Ведь можно просто использовать оператор "%"
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
 
using namespace std;
 
int main (void)
{
    int num;
    cout << "Enter number: ";
    cin >> num;
    (num % 3 == 0) ? cout << "Delitsya\n" :  cout << "Ne delitsya\n";
 
return 0;
}
Если же смысл состоит, чтобы найти сумму цифр числа, то
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
 
using namespace std;
 
int main (void)
{
    int num;
    cout << "Enter number: ";
    cin >> num;
    int sum = 0;
    while (num) {
        sum += num % 10;
        num = num / 10;
    }
    (sum % 3 == 0) ? cout << "Delitsya\n" :  cout << "Ne delitsya\n";
 
return 0;
}
Но опять же, всё сводится к оператору '%'.
Может есть какие-нибудь оговорки, что можно, а что нельзя.?
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
22.02.2011, 21:29     Нужно написать решение не знаю как к субботе #4
ping_rulezzz, посмотрите мой вариант и всё поймёте. Смысл в том, чтобы использовать свойство делимости на 3. Если сумма цифр числа делится на 3, то и само число делится на 3. А чтобы проверить, делится ли сумма на 3, к ней снова надо рекурсивно применить данное свойство. И делать так, пока не придём к вырожденному случаю - число равно 0, 3, 6 или 9.
ping_rulezzz
26 / 26 / 4
Регистрация: 18.02.2011
Сообщений: 51
22.02.2011, 21:37     Нужно написать решение не знаю как к субботе #5
Можно обойтись и без рекурсии, но всё равно всё сводится опять к оператору %. Вы же используете его в алгоритме...
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
22.02.2011, 21:39     Нужно написать решение не знаю как к субботе #6
ping_rulezzz, да, но только чтобы вытащить цифру из числа. На счёт рекурсии - мне кажется использовать её здесь более естественно, чем цикл.
ping_rulezzz
26 / 26 / 4
Регистрация: 18.02.2011
Сообщений: 51
22.02.2011, 21:47     Нужно написать решение не знаю как к субботе #7
может быть) но стараюсь её использовать только при реальной необходимости - всегда тяжелова-то представить как она работает, пока по шагам не пройдёшь (это я абстрактно про рекурсию=) )

ЗЫ всё же задание ппц... могли бы уже просто сказать - найдите сумму цифр числа - хоть какая-то логика.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2011, 21:49     Нужно написать решение не знаю как к субботе
Еще ссылки по теме:

нужно найти ошибки в задаче на языке C/ их в районе 10 как выдает компилятор но я не могу их исправить (не знаю как) C++
C++ Не знаю как написать

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

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
22.02.2011, 21:49     Нужно написать решение не знаю как к субботе #8
ping_rulezzz, ну в данном конкретном случае всё предельно понятно))
Yandex
Объявления
22.02.2011, 21:49     Нужно написать решение не знаю как к субботе
Ответ Создать тему
Опции темы

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