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

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

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

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

05.12.2013, 16:45. Просмотров 832. Ответов 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++ Является ли число степенью двойки?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
maxim12345
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 72
05.12.2013, 17:50  [ТС]     Узнать является ли число пятой степенью. Помогите найти ошибку. #21
ок, сейчас попробую
ValeryS
Модератор
6482 / 4948 / 455
Регистрация: 14.02.2011
Сообщений: 16,389
05.12.2013, 17:52     Узнать является ли число пятой степенью. Помогите найти ошибку. #22
Цитата Сообщение от maxim12345 Посмотреть сообщение
как можно вот тот код без умножения реализовать? его нельзя использовать
ты уж сразу напиши что нельзя
решать задачи из алгебры, арифметикой
Байт
Эксперт C
15281 / 9683 / 1437
Регистрация: 24.12.2010
Сообщений: 18,029
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
Модератор
6482 / 4948 / 455
Регистрация: 14.02.2011
Сообщений: 16,389
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
Модератор
6482 / 4948 / 455
Регистрация: 14.02.2011
Сообщений: 16,389
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
Модератор
6482 / 4948 / 455
Регистрация: 14.02.2011
Сообщений: 16,389
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
В поиске работы
1608 / 1409 / 504
Регистрация: 09.10.2013
Сообщений: 3,196
Записей в блоге: 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++ Является ли число степенью двойки
C++ Определить является ли число k степенью 3
Является ли число степенью двойки C++
Проверить, является ли число степенью 3 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     Узнать является ли число пятой степенью. Помогите найти ошибку.
Ответ Создать тему
Опции темы

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