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

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

Войти
Регистрация
Восстановить пароль
 
Lahden
1 / 1 / 0
Регистрация: 26.09.2013
Сообщений: 52
#1

Если x является степенью числа n, то вывести true - C++

29.09.2013, 12:31. Просмотров 346. Ответов 8
Метки нет (Все метки)

Нужно составить циклы с операторами while, do while, for.
Вот условие:
Даны целые числа x (>0) и n (>0). Если x является степенью числа n, то вывести true, иначе - false
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2013, 12:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Если x является степенью числа n, то вывести true (C++):

While4°. Дано целое число N (> 0). Если оно является степенью числа 3, то вывести true, если не является — вывести false. - C++
While. Дано целое число N (> 0). Если оно является степенью числа 3, то вывести true, если не является — вывести false.

Дано целое число N(>0). Если оно является степенью числа 3, то вывести TRUE, если не является-вывести FALSE. - C++
Дано целое число N(>0). Если оно является степенью числа 3, то вывести TRUE, если не является-вывести FALSE. Я не могу записать её с...

Определите, является ли число степенью числа 2, и если является, то выведите значение этой степени - C++
Дано натуральное число n. Определите, является ли оно степенью числа 2, и если является, то выведите значение этой степени / С++ для...

Дано натуральное число n. Определите, является ли оно степенью числа 2, и если является, то выведите значение этой степени - C++
Дано натуральное число n. Определите, является ли оно степенью числа 2, и если является, то выведите значение этой степени.

Если дробь А/В является правильной, вывести true, иначе вывести false. - C++
Составить линейную программу, печатающую значение true, если указанное высказывание является истинным, и false — в противном случае. ...

Рекурсия: вывести слово Yes, если число N является точной степенью двойки, иначе - No - C++
Дано натуральное число N. Вывести слово YES, если число N является точной степенью двойки, или слово NO в противном случае. При решении...

8
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
29.09.2013, 13:42 #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
#include <iostream>
using namespace std;
 
int main() {
    
    int n, x;
    bool res = false;
    
    cin >> n >> x;
    
    while( n <= x )
    {
        if( n == x )
        {
            res = true;
            break;
        }
        n *= n;
    }
    
    cout << boolalpha << res;
    
    return 0;
}
0
WilFred
31 / 26 / 3
Регистрация: 11.03.2012
Сообщений: 71
29.09.2013, 13:54 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Lahden,
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
#include <vcl.h>
#include <iostream.h>
#pragma hdrstop
 
#include <tchar.h>
 
using namespace std;
 
//---------------------------------------------------------------------------
 
#pragma argsused
  
int _tmain(int argc, _TCHAR* argv[])
{
    const int x = 81, n = 3;
    int i = 1;
    for(; i<x; i=i*n);
        
    if(x == i)
        cout << "true" << endl;
    else
        cout << "false" << endl;
    
    system("PAUSE");
    return 0;
}
0
Lahden
1 / 1 / 0
Регистрация: 26.09.2013
Сообщений: 52
29.09.2013, 17:04  [ТС] #4
Tulosba, спасибо, но он почему пишет true только у четных степеней
1
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
29.09.2013, 17:06 #5
Lahden, а ты не смотри на его код. У WilFred всё верно!
0
Lahden
1 / 1 / 0
Регистрация: 26.09.2013
Сообщений: 52
29.09.2013, 17:38  [ТС] #6
Kuzia domovenok, а как тогда while исправить?
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
29.09.2013, 17:48 #7
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
using namespace std;
int main() {
    int n, x, p=1;
  
    cin >> n >> x;
    while( p < x )
        p *= n;
    cout << boolalpha <<(p == x);
    return 0;
}
1
Lahden
1 / 1 / 0
Регистрация: 26.09.2013
Сообщений: 52
29.09.2013, 18:07  [ТС] #8
Спасибо, а можешь с программой помочь? В case 4 дописать цикл for (и еще, почему то пишет true 1 раз, а должно 2), а в case 3 цикл if или if else. (даны целые числа n, m, k и логическая переменная t. Нужно вычислит res = ложь, если (n+2)=m or (n+4)=k, в противном случае n>m и !b)
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include "work_2.h"
#include <iostream>
using namespace std;
int main ()
{
    char ch;
    do
    {
        ch=menu ();
        switch (ch)
        {
        case '1':
            {
                const short C (300);
                const unsigned short H (7);
                const int E (2);
                const unsigned int RO (2500);
                const long L (330);
                const unsigned long LA (110);
                const float R (8.31F);
                const double G (9.8065);
                const char K ('K');
                const unsigned char M ('M');
                const bool T (true);
                cout << C << endl;
                cout << H << endl;
                cout << E << endl;
                cout << RO << endl;
                cout << L << endl;
                cout << LA << endl;
                cout << R << endl;
                cout << G << endl;
                cout << K << endl;
                cout << M << endl;
                cout << T << endl;
                break;
            }
        case '2':
            {
                short ajax;
                float psg (0.0);
                unsigned long zen;
                cout << "Enter short -> " ;
                cin >> ajax;
                cout << ajax << endl;
                cout << "Enter float -> " ;
                cin >> psg;
                cout << psg << endl;
                cout << "Enter unsigned long -> " ;
                cin >> zen;
                cout << zen << endl;
                break;
            }
        case '3':
            {
                int n, m, k, res;
                bool t;
                cout << "Enter n -> " << endl;
                cin >> n ;
                cout << "Enter m -> " << endl;
                cin >> m ;
                cout << "Enter k -> " << endl;
                cin >> k ;
                if ( (n+2) == m || (n+4) == k)
                {
                    t = false;
                }
                else
                    res = (n > m)&& !k;
                cout << res << endl;
                break;
            }
        case '4':
            {
                int n, x, p=1 ;
                bool res ;
                cout << "Enter n, x ->" << endl;
                cin >> n >> x ;
                while (p < x)
                {
                    p *= n;
                }
                cout << boolalpha << (p == x) << endl;
                do
                {
                    res = (p == x);
                    p *= n;
                } while (n <= x);
                cout << boolalpha << (p == x) << endl;
                break;
            }
        case '0':
            return 0;
        default:
            ;
        }
    } while (ch!='0');
}
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
29.09.2013, 19:10 #9
Lahden, налагал. Исправляюсь:
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
#include <iostream>
using namespace std;
 
int main() {
    
    int n, x;
    bool res = false;
    
    cin >> n >> x;
    const int m = n;
    
    while( n <= x )
    {
        if( n == x )
        {
            res = true;
            break;
        }
        n *= m;
    }
    
    cout << boolalpha << res;
    
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2013, 19:10
Привет! Вот еще темы с ответами:

Если число является простым, то функция возвращает true, если не является false - C++
Напишите функцию, получающую целое число N(&gt;0). Если оно является простым, то функция возвращает true, если не является false. #include...

Определить, является ли введенное число степенью тройки, если да - то какой - C++
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;vcl.h&gt; #pragma hdrstop ...

Если массив является перестановкой, т.е. содержит все числа от 1 до N, то вывести 0 - C++
Array49. Дан целочисленный массив размера N. Если он является перестановкой, т. е. содержит все числа от 1 до N, то вывести 0; в противном...

Является ли число степенью другого числа - C++
Нужна функция которая проверяет, является ли число степенью какого либо другого числа. Ломаю голову, но пока не смог придумать как это...


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

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

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