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

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

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

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

05.12.2013, 16:45. Просмотров 992. Ответов 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, умножение и целочисленное деление
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2013, 16:45
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Узнать является ли число пятой степенью. Помогите найти ошибку. (C++):

В целочисленном массиве найти и напечатать те элементы, которые являются степенью 2. Написать функцию, проверяющую, является ли число степенью 2. - C++
В целочисленном массиве найти и напечатать те элементы, которые являются степенью 2. Написать функцию, проверяющую, является ли число...

Помогите, ГОС экзамен! Является ли число степенью другого числа - C++
Нужно написать программу определения является ли натуральное число степенью какого-либо натурального числа. Вообще нужно написать на...

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

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

Является ли число степенью двойки - C++
Условие: Входные данные Входной файл INPUT.TXT содержит единственное целое число N, не превосходящее 10000 по абсолютной величине. ...

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

33
maxim12345
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 72
05.12.2013, 17:41  [ТС] #16
мне это нужно будет переписать на язык нашего препода) он очень похож на паскаль, поэтому по возможности бы как заменить циклы на while P.S. с "языком препода" не смейтесь сильно)
0
Байт
Эксперт C
17653 / 11691 / 1863
Регистрация: 24.12.2010
Сообщений: 23,308
05.12.2013, 17:44 #17
Цитата Сообщение от maxim12345 Посмотреть сообщение
"языком препода"
Придется просить новый раздел открывать
2
maxim12345
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 72
05.12.2013, 17:45  [ТС] #18
как можно вот тот код без умножения реализовать? его нельзя использовать
0
Байт
Эксперт C
17653 / 11691 / 1863
Регистрация: 24.12.2010
Сообщений: 23,308
05.12.2013, 17:49 #19
Цитата Сообщение от maxim12345 Посмотреть сообщение
без умножения реализовать?
C
1
for(p=j=0; j< i ; j++) p+=i;
Получится i*i
И так еще 2-3 раза...
1
ValeryS
Модератор
6962 / 5299 / 522
Регистрация: 14.02.2011
Сообщений: 17,872
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");
1
maxim12345
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 72
05.12.2013, 17:50  [ТС] #21
ок, сейчас попробую
0
ValeryS
Модератор
6962 / 5299 / 522
Регистрация: 14.02.2011
Сообщений: 17,872
05.12.2013, 17:52 #22
Цитата Сообщение от maxim12345 Посмотреть сообщение
как можно вот тот код без умножения реализовать? его нельзя использовать
ты уж сразу напиши что нельзя
решать задачи из алгебры, арифметикой
2
Байт
Эксперт C
17653 / 11691 / 1863
Регистрация: 24.12.2010
Сообщений: 23,308
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) ...
1
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");
 
 
 
  }
вот что получилось, но она не работает(
0
ValeryS
Модератор
6962 / 5299 / 522
Регистрация: 14.02.2011
Сообщений: 17,872
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");
1
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");
 
 
 
  }
0
ValeryS
Модератор
6962 / 5299 / 522
Регистрация: 14.02.2011
Сообщений: 17,872
05.12.2013, 18:14 #27
Цитата Сообщение от maxim12345 Посмотреть сообщение
"Определить,является ли заданное число x пятойстепеньюцелогочисла. Использовать s, <, =, /, %."
идиотизм

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

Добавлено через 14 минут
а можете объяснить хотя б словами, что должен делать такой алгоритм?
0
ValeryS
Модератор
6962 / 5299 / 522
Регистрация: 14.02.2011
Сообщений: 17,872
05.12.2013, 18:35 #29
Цитата Сообщение от maxim12345 Посмотреть сообщение
а можете объяснить хотя б словами, что должен делать такой алгоритм?
ты писал ты и объясняй
я не в курсе что ты имел ввиду
1
maxim12345
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 72
05.12.2013, 18:37  [ТС] #30
нет, я имею ввиду "Определить,являетсялизаданноечисло x пятойстепеньюцелогочисла. Использовать s(прибавление 1), <, =, /, %." - словами как он должен работать
0
05.12.2013, 18:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2013, 18:37
Привет! Вот еще темы с ответами:

Определить является ли число k степенью 3 - C++
Определить является ли число k степенью 3. Помогите решить...

Определить является ли число к степенью 3 - C++
Определить является ли число к степенью 3.

Является ли число степенью двойки? - C++
Вводится число. Напечатать YES, если оно является степенью двойки, NO - иначе.

Проверить, является ли число степенью 3 - C++
Данное целое число N ( &gt; 0). Если оно есть степенно числа 3 , то вывести TRUE, если не является - вывести FALSE . С++


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Опции темы

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