Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 35
1

Найти все числа которые являются кубами каких-либо чисел

22.10.2012, 16:06. Просмотров 2912. Ответов 21
Метки нет (Все метки)

Дан отрезок от а до b, на этом отрезке нужно найти такие числа, которые являются кубами других каких-либо чисел ( допустим, 8 принадлежит [a,b] 2^3=8 нужно напечатать в ответе 8)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.10.2012, 16:06
Ответы с готовыми решениями:

Найти на интервале от меньшего до большего все целые числа, модули которых являются кубами целых чисел
Даны целые числа N и M. Найти на интервале <от меньшего из них до большего из них> все целые числа,...

Найти количество чисел, которые не превосходят числа A и являются полными квадратами некоторого натурального числа
Исходное задание: Найти количество чисел, которые не превосходят числа A и являются полными...

Найти все простые числа, которые являются делителями одновременно m и n
Найти все простые числа, которые являются делителями одновременно m и n

Найти все цифры числа, которые являются его делителями
Пожалуйсто помогите с заданием. Я даже незнаю с чего начать... Задание: 1) задаем натуральное...

__________________
21
Эксперт С++
4710 / 2535 / 753
Регистрация: 18.08.2009
Сообщений: 4,550
22.10.2012, 17:50 2
Лучший ответ Сообщение было отмечено как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<stdio.h>
#include<math.h>
int main()
{
    int a, b;
    printf("a="); scanf("%d", &a);
    printf("b="); scanf("%d", &b);
    a=(int)pow((double)(a-1), 1./3);
    a++;
    while(a*a*a<=b)
    {
        printf("%d\n", a*a*a);
        a++;
    }
    return 0;
}
3
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 35
22.10.2012, 17:54  [ТС] 3
Спасибо, а можно пояснение к 8 строке?
0
Эксперт С++
4710 / 2535 / 753
Регистрация: 18.08.2009
Сообщений: 4,550
22.10.2012, 18:08 4
Цитата Сообщение от Kosor Посмотреть сообщение
а можно пояснение к 8 строке?
не могу найти формулы, поэтому объясню так:
переменную a уменьшаем на 1, затем из полученного числа извлекаем кубический корень. Полученное значение и есть новое значение переменной a.
0
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 35
22.10.2012, 21:15  [ТС] 5
Ок... понял
0
64 / 64 / 20
Регистрация: 16.07.2012
Сообщений: 147
22.10.2012, 21:30 6
Kosor, valeriikozlov, вы уверены, что приведенный код сработает. Если не ошибаюсь в <math.h> лежит pow (int, int). pow(double, double) - это функция <cmath>. Проверил в codepad, не компилится.
0
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 35
22.10.2012, 21:37  [ТС] 7
Действительно, не работает. Получается, используя только библиотеку stdafx.h, данную задачу невозможно решить?
п.с. я пока-что полный новичок, и это моя 5 задача...
0
64 / 64 / 20
Регистрация: 16.07.2012
Сообщений: 147
22.10.2012, 21:49 8
Kosor, без паники)
В visual studia работаете?
Попробуйте заменить <math.h> на <cmath>
1
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 35
22.10.2012, 21:55  [ТС] 9
polyaKIDze, да, в ней самой!

Добавил библиотеку cmath, программа заработала... Но поясните функцию pow, пожалуйста! Я с ней не знаком
0
64 / 64 / 20
Регистрация: 16.07.2012
Сообщений: 147
22.10.2012, 22:09 10
Kosor, pow (основание, степень) - функция возведения в степень.
В языке СИ (библиотека <math.h>) аргументы этой функции имеют только тип int, в C++ (библиотека <cmath>) аргументы имеют и тип double. Для справки: в C++ реализован полиморфизм и/или перегрузка функций, т.е. под pow() понимаются целые 3 функции: int pow(int, int), long pow(long, long) и double pow (double, double). Подробнее документацию можно читать здесь.
Кстати тесты на отрезке от 1 до бесконечности прошли успешно, а вот если брать левую границу еще левее, выходит косяк. Пока не понял, что не так.

Добавлено через 3 минуты
Потестил еще: функция pow() возводит отрицательное число типа double в целую степень нормально, а вот в дробную возвести не может. (по крайней мере на моем компьютере)
1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
10910 / 6836 / 1625
Регистрация: 25.07.2009
Сообщений: 12,540
23.10.2012, 15:09 11
Цитата Сообщение от polyaKIDze Посмотреть сообщение
В языке СИ (библиотека <math.h>) аргументы этой функции имеют только тип int
нет, double - и оба параметра, и возвращаемое значение.
man pow
А вот в С++ эту функцию как только ни перегрузили...
0
64 / 64 / 20
Регистрация: 16.07.2012
Сообщений: 147
23.10.2012, 18:33 12
easybudda, согласен в мануале действительно написано double, но экспериментально у меня вышло так, как я написал. Да и Kosor подтвердил, что с <math.h> код не компилировался.
Попробуйте сами потестить хотя бы на codepad.
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
10910 / 6836 / 1625
Регистрация: 25.07.2009
Сообщений: 12,540
23.10.2012, 18:48 13
Цитата Сообщение от polyaKIDze Посмотреть сообщение
Попробуйте сами потестить
Прекрасным образом код компилируется и работает
Найти все числа которые являются кубами каких-либо чисел
1
64 / 64 / 20
Регистрация: 16.07.2012
Сообщений: 147
23.10.2012, 20:52 14
Цитата Сообщение от easybudda Посмотреть сообщение
Прекрасным образом код компилируется и работает
у кого как:
Найти все числа которые являются кубами каких-либо чисел
0
64 / 64 / 20
Регистрация: 16.07.2012
Сообщений: 147
23.10.2012, 20:57 15
или тут:
Найти все числа которые являются кубами каких-либо чисел
0
Заблокирован
23.10.2012, 21:02 16
Цитата Сообщение от polyaKIDze Посмотреть сообщение
у кого как:
man 3 intro, man 3 pow
Link with -lm
1
64 / 64 / 20
Регистрация: 16.07.2012
Сообщений: 147
23.10.2012, 21:21 17
А стоит только ман почитать. Спасибо.
Может, тогда кто-нибудь пояснит, почему на интервале от 0 до 100 программа падает. Точнее не программа, а pow(-1, 1/3) = -nan.
Чувствую, это в мане написано, но никогда не умел толком его читать.
0
Заблокирован
23.10.2012, 21:32 18
polyaKIDze, с nan'ами inf'ами работают плюшки С99. man 3 isnan

Добавлено через 49 секунд
кубический корень из -1 ))) complex.h подтягивай.
0
64 / 64 / 20
Регистрация: 16.07.2012
Сообщений: 147
23.10.2012, 22:20 19
А при чем тут комплексные числа? (-1)^(1/3) = -1
0
Заблокирован
23.10.2012, 22:29 20
polyaKIDze, да ни при чем. сразу не сообразил, редактировать пост влом было.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.10.2012, 22:29

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Найти Среди чисел те, которые являются квадратами некоторого числа т
Даны целые положительные числа А1, А2,..., Аn. Найти Среди них те, которые являются квадратами...

Найти среди чисел те, которые являются квадратами некоторого числа m
Даны целые положительные числа a1, a2, ..., аn. Найти среди них те, которые являются квадратами...

Найти среди чисел те, которые являются квадратами некоторого числа n
даны целые положительные числа а1,а2,...,an. Найти среди них те, которые являются квадратами...

Найти среди чисел те, которые являются квадратами некоторого числа m
Даны целые положительные числа a1, a2, …, an. Найти среди них те, которые являются квадратами...


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

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

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