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

Найти ближайшее к данному число, которое делится на 3, но не делится на 2. - C++

Восстановить пароль Регистрация
 
Alexa95
0 / 0 / 0
Регистрация: 18.01.2014
Сообщений: 29
29.01.2014, 11:45     Найти ближайшее к данному число, которое делится на 3, но не делится на 2. #1
Нужно решить задания(Как можно проще...простые коды..(for,while,if,scanf,printf...))
2)Дано натуральное число. Найти ближайшее к нему натуральное число, которое делится на 3, но не делится на 2.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2014, 11:45     Найти ближайшее к данному число, которое делится на 3, но не делится на 2.
Посмотрите здесь:

C++ Определить ближайшее нечетное число меньше заданного числа N, которое делится на 15 с остатком 6
Определить ближайшее нечетное число меньше заданного числа N, которое делится на 15 с остатком 6 C++
C++ Найти ближайшее число,которое делится на 3, но не делится на 2
Если a делится на b или b делится на a, то вывести 1, иначе – любое другое число C++
C++ Найти натуральное число M такое, что M делится на N и сумма цифр M делится на N
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
29.01.2014, 17:15     Найти ближайшее к данному число, которое делится на 3, но не делится на 2. #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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <iostream>
using namespace std;
 
int main()
{
    int num, small, big, counter;
    cout << "Enter natural number: "; cin >> num;
    
    while(num < 0)
    {
        cout << "Enter natural number: "; cin >> num;
    }
    
    counter = num;
    do
    {
        counter++;
        big = counter;
    }
    while((counter % 3) && 
         !(counter % 2));
    
    counter = num;    
    for(; counter >= 3; counter--)
    {
        if(!(counter % 3) &&
           (counter % 2))
        {
            small = counter;
            break;
        }
    }
    
    while(true)
    {
        if(!(num % 3) && (num % 2))
        {
            cout << "Nearest integer is: " << num - 6 << endl;
            break;
        }
        if(!(num % 3) && !(num % 2))
        {
            cout << "Nearest integer is: " << small << endl;
            break;
        }
        if(big - num < num - small)
        {
            cout << "Nearest integer is: " << big << endl; 
            break;
        }
        else
        {
            cout << "Nearest integer is: " << small << endl;
            break;
        }
    }
    
    system("pause");
    return 0;
}
Mger
1 / 1 / 0
Регистрация: 24.04.2013
Сообщений: 17
29.01.2014, 17:45     Найти ближайшее к данному число, которое делится на 3, но не делится на 2. #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
 
int main() {    
    int n;
    cin >> n;
    while (n % 3 != 0)
    {
        n++;
        if (n%2==0)
        {
            n++;
        }   
    }   
    cout << n;
    system("pause > void");
    return 0;
}
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
29.01.2014, 18:22     Найти ближайшее к данному число, которое делится на 3, но не делится на 2. #4
Mger, думаю надо учесть ближайшие числа, которые меньше введенного.
К слову, если введено 10 ближайшим будет 9, а не 15

Alexa95, мой первый вариант неточный.
Следующий рабочий:
Кликните здесь для просмотра всего текста

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
64
65
66
#include <iostream>
using namespace std;
 
int main()
{
    int num, small, big, counter;
    cout << "Enter natural number: "; cin >> num;
    
    while(num < 0)
    {
        cout << "Enter natural number: "; cin >> num;
    }
    
    while(true)
    {
        if(!(num % 3) && (num % 2))
        {
            if(num > 3)
            {
                cout << num - 6;
                break;
            }
            else
            {
                cout << num + 6;
                break;
            }
        }
        if(!(num % 3) && !(num % 2))
        {
            cout << num - 3;
            break;
        }
        if(!(num % 2))
        {
            if(!((num - 1) % 3))
            {
                cout << num - 1;
                break;
            }
            else
            {
                cout << num + 1;
                break;
            }
        }
        if(num % 2)
        {
            if(!((num - 2) % 3))
            {
                cout << num - 2;
                break;
            }
            else
            {
                cout << num + 2;
                break;
            }
        }
    }
    
    cout << endl;
    
    system("pause");
    return 0;
}
Yandex
Объявления
29.01.2014, 18:22     Найти ближайшее к данному число, которое делится на 3, но не делится на 2.
Ответ Создать тему
Опции темы

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