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

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

Войти
Регистрация
Восстановить пароль
 
 
maxim12345
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 72
#1

Узнать является ли число пятой степенью. Помогите найти ошибку. - C++

05.12.2013, 16:45. Просмотров 858. Ответов 33
Метки нет (Все метки)

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
#include<stdio.h>
 
int main()
{
    int x,a,b,c,d;
    scanf("%d",&x);
    b=1;
    if(b==x)
    {
       d=1;
       printf("%d", d);
       return 0;
    }
 
    if (x<b)
    {
      d=0;
    }
 
 
    a=0;
 
    c=b;
    while (a<c)
    {
        b=b+1;
        a=a+1;
    }
 
    printf("%d", d);
 
 
 
 
}
попытался написать прогу, которая проверяет, является ли число пятой степенью, но получается бред какой-то. Помогите, пожалуйста. но использовать можно только прибавление 1, умножение и целочисленное деление
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2013, 16:45     Узнать является ли число пятой степенью. Помогите найти ошибку.
Посмотрите здесь:

C++ Является ли число степенью другого числа
Определить является ли число к степенью 3 C++
C++ В целочисленном массиве найти и напечатать те элементы, которые являются степенью 2. Написать функцию, проверяющую, является ли число степенью 2.
Помогите, ГОС экзамен! Является ли число степенью другого числа C++
Дано натуральное число n. Определите, является ли оно степенью числа 2, и если является, то выведите значение этой степени C++
C++ Определите, является ли число степенью числа 2, и если является, то выведите значение этой степени
C++ Является ли число степенью двойки?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rescr1pt
31 / 32 / 1
Регистрация: 03.10.2011
Сообщений: 61
05.12.2013, 17:02     Узнать является ли число пятой степенью. Помогите найти ошибку. #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
#include <iostream>
using namespace std;
 
int main()
{
    cout<<"Enter n: ";
    int n;
    cin>>n;
    bool flag=true;
 
    while ((n>5)&&(flag))
    {
        if ((n % 5)==0) 
            n/=5;
        else 
            flag=false;  
    }
 
    if ((flag)&&(n%5==0)) 
        cout<<"Yes";
    else 
        cout<<"No";
 
    // pause
    cin.get();
    cin.get();
}
maxim12345
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 72
05.12.2013, 17:05  [ТС]     Узнать является ли число пятой степенью. Помогите найти ошибку. #3
flag,true, falce - что это такое?
rescr1pt
31 / 32 / 1
Регистрация: 03.10.2011
Сообщений: 61
05.12.2013, 17:09     Узнать является ли число пятой степенью. Помогите найти ошибку. #4
Цитата Сообщение от maxim12345 Посмотреть сообщение
flag,true, falce - что это такое?
булевая переменная, которая будет возвращать отрицательное значение, если n'число не делится на 5.
Байт
Эксперт C
15551 / 9893 / 1487
Регистрация: 24.12.2010
Сообщений: 18,502
05.12.2013, 17:12     Узнать является ли число пятой степенью. Помогите найти ошибку. #5
Цитата Сообщение от maxim12345 Посмотреть сообщение
falce
false - ложь. true - истина (правда) flag - введенная (объявленная) авторм программы логическая (булевая) переменная

Добавлено через 1 минуту
Цитата Сообщение от rescr1pt Посмотреть сообщение
булевая переменная, которая будет возвращать отрицательное значение
Простите, как это?
egor2116
338 / 369 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
05.12.2013, 17:15     Узнать является ли число пятой степенью. Помогите найти ошибку. #6
Как то так

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
 int main()
 {
     float numeric, source;
     std::cout << "Input numeric: "; std::cin >> numeric;
     
     source = numeric;
     while(numeric > 1.0f)
        numeric /= 5;
     
     if(numeric == 1) 
        std::cout << source << " is degree 5" << std::endl;
     else
        std::cout << source << " is not degree 5" << std::endl;
     
     system("PAUSE");
     return 0;
 }
ValeryS
Модератор
6511 / 4977 / 460
Регистрация: 14.02.2011
Сообщений: 16,486
05.12.2013, 17:17     Узнать является ли число пятой степенью. Помогите найти ошибку. #7
rescr1pt,
а ты уверен что чтобы узнать пятая ли степень числа нужно делить на 5?
например число 32 =25
ну ни как на пять не делится
Байт
Эксперт C
15551 / 9893 / 1487
Регистрация: 24.12.2010
Сообщений: 18,502
05.12.2013, 17:18     Узнать является ли число пятой степенью. Помогите найти ошибку. #8
Цитата Сообщение от rescr1pt Посмотреть сообщение
(n%5==0)
Вот тут надо здорово подумать. ИМХО, по приоритету сначала выполняется сравнение (5==0). Оно дает false = 0/. Потом вы будете делить на 0. Может быть я с приоритетами и путаю, но чтоб не было таких вопросов, рекомендуется писать
C
1
((n%5)==0)
Сам на эти грабли пару раз наступил, никому не советую...
maxim12345
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 72
05.12.2013, 17:19  [ТС]     Узнать является ли число пятой степенью. Помогите найти ошибку. #9
Кстати, да. Помогите пожалуйста разрулить
ValeryS
Модератор
6511 / 4977 / 460
Регистрация: 14.02.2011
Сообщений: 16,486
05.12.2013, 17:20     Узнать является ли число пятой степенью. Помогите найти ошибку. #10
я бы попробовал как то так
C++
1
2
3
4
5
int tmp=pow(n,1.0/5.0);
if(tmp*tmp*tmp*tmp*tmp==n)
   printf("Yes");
else
   printf("No");
maxim12345
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 72
05.12.2013, 17:23  [ТС]     Узнать является ли число пятой степенью. Помогите найти ошибку. #11
А можно это как то в более простом варианте, ибо я новичек, этого не понимаю, да и использовать можно только +1, целочисленное деление, остаток от деления

Добавлено через 1 минуту
а можно поподробнее, ибо я новичек и не понимаю еще этого, да и использовать можно только +1, целочисленное деление и остаток от деления
egor2116
338 / 369 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
05.12.2013, 17:25     Узнать является ли число пятой степенью. Помогите найти ошибку. #12
например число 32 =25
ну ни как на пять не делится
а Вы попробуйте )))
std::cout << 32 / 5;
Байт
Эксперт C
15551 / 9893 / 1487
Регистрация: 24.12.2010
Сообщений: 18,502
05.12.2013, 17:28     Узнать является ли число пятой степенью. Помогите найти ошибку. #13
Цитата Сообщение от ValeryS Посмотреть сообщение
rescr1pt,
а ты уверен
Ну, то что код решает какую-то совсем другую задачу - это ясно.
C++
1
2
3
4
5
6
7
for(flag=i=0; ; i++) {
  k = i*i*i*i*i;
  if (k==n) {
    flag=1; break; }
  if k > n) break;
}
printf (flag ? "Yes" : "No");
Оформление (main, объявления переменных...) я оставил тебе
ValeryS
Модератор
6511 / 4977 / 460
Регистрация: 14.02.2011
Сообщений: 16,486
05.12.2013, 17:34     Узнать является ли число пятой степенью. Помогите найти ошибку. #14
Цитата Сообщение от maxim12345 Посмотреть сообщение
А можно это как то в более простом варианте, ибо я новичек, этого не понимаю, да и использовать можно только +1, целочисленное деление, остаток от деления
интересно как ты узнаешь корень пятой степени оперируя только этими действиями
да и нет у меня ничего сложного
Цитата Сообщение от ValeryS Посмотреть сообщение
int tmp=pow(n,1.0/5.0);
берем корень пятой степени из числа n дробную часть отбрасываем (для этого есть int)
функция pow возводит число в степень, корень пятой степени это 1/5
дальше возводим полученное число в пятую степень
Цитата Сообщение от ValeryS Посмотреть сообщение
tmp*tmp*tmp*tmp*tmp
и сравниваем если полученное произведение равно первоначальному числу
значит первоначальное число является пятой степенью
например
32
корень 2
2*2*2*2*2 равно 32
является
33
корень
2.01232
целое 2
2*2*2*2*2 не равно 33
не является

Добавлено через 1 минуту
Цитата Сообщение от egor2116 Посмотреть сообщение
а Вы попробуйте )))
std::cout << 32 / 5;
и что на самом деле 6
rescr1pt
31 / 32 / 1
Регистрация: 03.10.2011
Сообщений: 61
05.12.2013, 17:36     Узнать является ли число пятой степенью. Помогите найти ошибку. #15
Цитата Сообщение от Байт Посмотреть сообщение
Простите, как это?

Не по теме:

Поймали на слове. В риторическом случаи, false (0) отрицательное, true(1) положительное.
Оправдался считай


А о задаче я не додумал.
maxim12345
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 72
05.12.2013, 17:41  [ТС]     Узнать является ли число пятой степенью. Помогите найти ошибку. #16
мне это нужно будет переписать на язык нашего препода) он очень похож на паскаль, поэтому по возможности бы как заменить циклы на while P.S. с "языком препода" не смейтесь сильно)
Байт
Эксперт C
15551 / 9893 / 1487
Регистрация: 24.12.2010
Сообщений: 18,502
05.12.2013, 17:44     Узнать является ли число пятой степенью. Помогите найти ошибку. #17
Цитата Сообщение от maxim12345 Посмотреть сообщение
"языком препода"
Придется просить новый раздел открывать
maxim12345
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 72
05.12.2013, 17:45  [ТС]     Узнать является ли число пятой степенью. Помогите найти ошибку. #18
как можно вот тот код без умножения реализовать? его нельзя использовать
Байт
Эксперт C
15551 / 9893 / 1487
Регистрация: 24.12.2010
Сообщений: 18,502
05.12.2013, 17:49     Узнать является ли число пятой степенью. Помогите найти ошибку. #19
Цитата Сообщение от maxim12345 Посмотреть сообщение
без умножения реализовать?
C
1
for(p=j=0; j< i ; j++) p+=i;
Получится i*i
И так еще 2-3 раза...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2013, 17:50     Узнать является ли число пятой степенью. Помогите найти ошибку.
Еще ссылки по теме:

C++ Является ли число степенью двойки
C++ Определить является ли число k степенью 3
Является ли число степенью двойки C++
Проверить, является ли число степенью 3 C++
C++ Проверить, является ли число степенью двойки

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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6511 / 4977 / 460
Регистрация: 14.02.2011
Сообщений: 16,486
05.12.2013, 17:50     Узнать является ли число пятой степенью. Помогите найти ошибку. #20
Цитата Сообщение от maxim12345 Посмотреть сообщение
возможности бы как заменить циклы на while
ну вот тебе решение, по мотивам Байт,
C++
1
2
3
4
5
6
7
8
9
10
11
12
int k=1;
bool flag=false;
while(k*k*k*k*k<=n)
{
  if(k*k*k*k*k==n)
  {
  flag=true;
  break; 
  }
k++;
}
printf (flag ? "Yes" : "No");
Yandex
Объявления
05.12.2013, 17:50     Узнать является ли число пятой степенью. Помогите найти ошибку.
Ответ Создать тему
Опции темы

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