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

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

Восстановить пароль Регистрация
 
 
maxim12345
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 72
05.12.2013, 16:45     Узнать является ли число пятой степенью. Помогите найти ошибку. #1
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++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
maxim12345
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 72
05.12.2013, 17:50  [ТС]     Узнать является ли число пятой степенью. Помогите найти ошибку. #21
ок, сейчас попробую
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,042
05.12.2013, 17:52     Узнать является ли число пятой степенью. Помогите найти ошибку. #22
Цитата Сообщение от maxim12345 Посмотреть сообщение
как можно вот тот код без умножения реализовать? его нельзя использовать
ты уж сразу напиши что нельзя
решать задачи из алгебры, арифметикой
Байт
 Аватар для Байт
13953 / 8784 / 1221
Регистрация: 24.12.2010
Сообщений: 15,891
05.12.2013, 17:55     Узнать является ли число пятой степенью. Помогите найти ошибку. #23
Цитата Сообщение от ValeryS Посмотреть сообщение
вот тебе решение
Нормальный код, рабочий. 2 замечания. 1) не учтен случай n=0 (k=0). 2) С младых когтей старайтесь по возможности писать эффективно.
C++
1
2
while((M=k*k*k*k*k)<=n) {
  if (M==n) ...
maxim12345
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 72
05.12.2013, 18:00  [ТС]     Узнать является ли число пятой степенью. Помогите найти ошибку. #24
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>
#include <stdio.h>
using namespace std;
 
int main()
{
    int n,p,i,j,k, flag;
    scanf("%d", &n);
    for(p=j=0; j< i ; j++) p+=i;
    {
      k = i*i*i*i*i;
    }
      if (k==n)
      {
        flag=1;
 
      }
      if (k > n)
      {
 
      }
 
    printf (flag ? "Yes" : "No");
 
 
 
  }
вот что получилось, но она не работает(
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,042
05.12.2013, 18:07     Узнать является ли число пятой степенью. Помогите найти ошибку. #25
Цитата Сообщение от Байт Посмотреть сообщение
С младых когтей старайтесь по возможности писать эффективно.
ты уверен что твой цикл более понятен начинающему
вот так более эффективно( нет ветвления в цикле) но не уверен что более понятно
C++
1
2
3
4
int k=0;
while(k*k*k*k*k<n)
  k++;
printf (k*k*k*k*k==n? "Yes" : "No");
кстати здесь не предусмотрено отрицательное число
вот так уж по полной то
C++
1
2
3
4
5
6
7
8
9
10
11
12
int k=0;
if( n>0)
 {
 while(k*k*k*k*k<n)
  k++;
  }
else
  {
   while(k*k*k*k*k>n)
  k--;
  }
printf (k*k*k*k*k==n? "Yes" : "No")
Добавлено через 4 минуты
можно вот так

C++
1
2
3
4
5
6
7
int a=1;
if(n<0)
 a=-1;
int k=0;
while(k*k*k*k*k<n*a)
   k++;
printf (k*k*k*k*k==n*a ? "Yes" : "No");
maxim12345
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 72
05.12.2013, 18:10  [ТС]     Узнать является ли число пятой степенью. Помогите найти ошибку. #26
"Определить,является ли заданное число x пятойстепеньюцелогочисла. Использовать s, <, =, /, %." - тут еще и сложение нельзя использовать, блин, оно все равно не работает(

Добавлено через 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
#include <iostream>
#include <stdio.h>
using namespace std;
 
int main()
{
    int n,p,i,j,k, flag;
    scanf("%d", &n);
    for(p=j=0; j< i ; j++)
    {
        p+=i;
        k = i*i*i*i*i;
    }
      if (k==n)
      {
        flag=1;
 
      }
      if (k > n)
      {
 
      }
 
    printf (flag ? "Yes" : "No");
 
 
 
  }
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,042
05.12.2013, 18:14     Узнать является ли число пятой степенью. Помогите найти ошибку. #27
Цитата Сообщение от maxim12345 Посмотреть сообщение
"Определить,является ли заданное число x пятойстепеньюцелогочисла. Использовать s, <, =, /, %."
идиотизм

Добавлено через 1 минуту
Цитата Сообщение от maxim12345 Посмотреть сообщение
if (k > n)
* * * {
}
что ты хотел этим выразить?
maxim12345
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 72
05.12.2013, 18:34  [ТС]     Узнать является ли число пятой степенью. Помогите найти ошибку. #28
Да, действительно, непонятно зачем оно

Добавлено через 14 минут
а можете объяснить хотя б словами, что должен делать такой алгоритм?
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,042
05.12.2013, 18:35     Узнать является ли число пятой степенью. Помогите найти ошибку. #29
Цитата Сообщение от maxim12345 Посмотреть сообщение
а можете объяснить хотя б словами, что должен делать такой алгоритм?
ты писал ты и объясняй
я не в курсе что ты имел ввиду
maxim12345
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 72
05.12.2013, 18:37  [ТС]     Узнать является ли число пятой степенью. Помогите найти ошибку. #30
нет, я имею ввиду "Определить,являетсялизаданноечисло x пятойстепеньюцелогочисла. Использовать s(прибавление 1), <, =, /, %." - словами как он должен работать
salam
157 / 138 / 11
Регистрация: 10.07.2012
Сообщений: 709
05.12.2013, 18:50     Узнать является ли число пятой степенью. Помогите найти ошибку. #31
решать pow() тут, конечно, не правильно, ибо задачи тогда нет по сути. стоит решать подбором. стоит только заметить, что не надо перебирать все числа из неизвестного диапазона. ответ ищется бинпоиском.
maxim12345
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 72
05.12.2013, 19:09  [ТС]     Узнать является ли число пятой степенью. Помогите найти ошибку. #32
А можно как то вот эту программу поправитть, чтобы она проверяла, является ли число пятой степенью какого-нибудь числа?
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();
}
Max Dark
В поиске работы
 Аватар для Max Dark
1546 / 1399 / 501
Регистрация: 09.10.2013
Сообщений: 3,185
Записей в блоге: 8
Завершенные тесты: 2
05.12.2013, 19:18     Узнать является ли число пятой степенью. Помогите найти ошибку. #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
long int imul(long int a, long int b) {
    long int result, start, end;
    if((a==0)||(b==0))
        return 0;
    result = 0;
    if(b<0) {
        a = -a;
        start = b; end = 0;
    }
    else {
        start = 0; end = b;
    }
    while(start<end) {
        result+= a;
        ++start;
    }
    return result;
}
 
bool check(long int n) {
    long int k,k5;
    if((n==0)||(n == 1)||(n == -1))
        return true;
    k=2;
    do {
        k5 = imul(k, imul(k,imul(k, imul(k,k))));
        ++k;
    }
    while(k5<n);
    return (k5 == n);
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2013, 19:23     Узнать является ли число пятой степенью. Помогите найти ошибку.
Еще ссылки по теме:

C++ Определите, является ли число степенью числа 2, и если является, то выведите значение этой степени
C++ Является ли число степенью двойки?
C++ Является ли число степенью двойки

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

Или воспользуйтесь поиском по форуму:
maxim12345
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 72
05.12.2013, 19:23  [ТС]     Узнать является ли число пятой степенью. Помогите найти ошибку. #34
crt0_c.c:-1: ошибка: undefined reference to `WinMain@16'
collect2.exe:-1: ошибка: error: ld returned 1 exit status вот такие ошибки вылезают, что это может быть?
Yandex
Объявления
05.12.2013, 19:23     Узнать является ли число пятой степенью. Помогите найти ошибку.
Ответ Создать тему
Опции темы

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