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

Куб числа - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.89
XaJlop4ik
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 70
27.02.2012, 21:51     Куб числа #1
Доброго времени суток, уважаемые форумчане)
Нужно найти число, которое равняется кубу суммы всех своих цифр.
Ну например: 512=(5+1+2)^3
Просьба, помочь) Бо в голове не укладывается как это сделать( уже заюзал цикл for все равно, не выходит(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2012, 21:51     Куб числа
Посмотрите здесь:

C++ Если число - куб натурального числа то возвращать true, иначе false
Все отрицательные числа массива возвести в куб и найти их сумму. C++
C++ Нарисовать куб
Как возвести числа в квадрат , куб (также в другие степени ) в с++? C++
Операторы выбора. Даны три различных числа. Среднее поделить на меньшее, меньшее возвести в куб, большее оставить без изменения C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
 Аватар для Байт
13988 / 8819 / 1230
Регистрация: 24.12.2010
Сообщений: 15,975
27.02.2012, 22:01     Куб числа #2
Цитата Сообщение от XaJlop4ik Посмотреть сообщение
уже заюзал цикл for все равно, не выходит
Показал бы, чего ты там заюзал. Тогда яснее бы стало, чем тебе можно помочь.
theonlymine
1 / 1 / 0
Регистрация: 21.02.2012
Сообщений: 11
27.02.2012, 22:02     Куб числа #3
C
1
2
3
4
5
6
7
8
9
10
int main()
{
    int n;
    scanf("%d", &n);
    cube = n/100 + (n/10)%10 + n%10; //берем 1 цифру + 2 цифру + 3 цифру
    cube *= cube; //доводим до куба, можно с помощью for
    cube *= cube;
    printf ("%d\n", cube);
    return 0;
}
C
1
2
3
int i;
for (i = 0; i < 2; i++)
       cube *= cube;
вот с помощью цикла. Мб еще функция в math.h есть, которая в куб возводит.
P.S. алгоритм детский, но все же.
Байт
 Аватар для Байт
13988 / 8819 / 1230
Регистрация: 24.12.2010
Сообщений: 15,975
27.02.2012, 22:06     Куб числа #4
theonlymine, вы тут вычисляете куб, а не находите нужные числа. Кроме того нигде не сказано, что число - 3-значное.
Но ваш подход можно положить в основу алгоритма.
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
27.02.2012, 22:20     Куб числа #5
А чем pow(x,y) не устраивает? Которая в math находится.
XaJlop4ik
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 70
27.02.2012, 22:22  [ТС]     Куб числа #6
theonlymine, спасибо, конечно, но мне не нужно вычислять сам куб. Мне нужно найти само число, которое равняется сумме кубов своих чисел
theonlymine
1 / 1 / 0
Регистрация: 21.02.2012
Сообщений: 11
27.02.2012, 22:25     Куб числа #7
Цитата Сообщение от Байт Посмотреть сообщение
theonlymine, вы тут вычисляете куб, а не находите нужные числа. Кроме того нигде не сказано, что число - 3-значное.
Но ваш подход можно положить в основу алгоритма.
невнимательность) тогда отдельно написать функцию для простоты:

C
1
2
3
4
5
6
7
8
9
int num(int n)
{
    int sum = 0;
    while (n > 0) {
        sum += n % 10;
        n /= 10;
    }
        return sum;
}
и там сделать
C
1
cube = num(n);
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
27.02.2012, 22:26     Куб числа #8
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <conio.h>
#include <stdio.h>
#include <math.h>
int main()
{
 int a,x,s=0;
 double prod,p=0;
 scanf("%d",&a);
 x=a;
 while (x!=0)
  {
   s=x%10;
   x=x/10;
   p+=s;
  }
 prod=pow(p,3);
 printf("%5.1f",prod);
 getch();
 return 0;
}
x1Mike7x
 Аватар для x1Mike7x
214 / 127 / 6
Регистрация: 06.11.2010
Сообщений: 234
27.02.2012, 22:26     Куб числа #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
__int64 dp3( __int 64 x )
{
    __int64 z = 0ll;
    for ( 7; x; x /= 10 )
        z += x % 10;
    return z * z * z;
}
 
int main()
{
    __int64 a;
    for ( a = 123ll; a != dp3( a ); ++a );
    std::cout << a << " is ok\n";
    return 0;  
}
theonlymine
1 / 1 / 0
Регистрация: 21.02.2012
Сообщений: 11
27.02.2012, 22:28     Куб числа #10
Цитата Сообщение от XaJlop4ik Посмотреть сообщение
theonlymine, спасибо, конечно, но мне не нужно вычислять сам куб. Мне нужно найти само число, которое равняется сумме кубов своих чисел
тогда соедини куски, которые я написал, в отдельную функцию, которая подсчитывает куб числа.
и далее цикл (если неизвестно, до какого числа считать):

C
1
2
3
4
5
int k = 0;
while (1) {
    if (k == cube(k)) // cube - функция подсчета офк
        printf("%d\n", k);
}
XaJlop4ik
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 70
27.02.2012, 22:34  [ТС]     Куб числа #11
theonlymine, ну все, теперь я точно запутался(
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
27.02.2012, 22:36     Куб числа #12
XaJlop4ik, Вам дали полный рабочий код на первой странице. В чем тут путаться?
XaJlop4ik
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 70
27.02.2012, 22:37  [ТС]     Куб числа #13
BumerangSP, спасибо, а как сделать, что бы ввод осуществлялся через пробел?
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
27.02.2012, 22:39     Куб числа #14
XaJlop4ik, ввод чего? Нескольких чисел?
theonlymine
1 / 1 / 0
Регистрация: 21.02.2012
Сообщений: 11
27.02.2012, 22:43     Куб числа #15
В целом так:

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
#include <stdio.h>
#include <stdlib.h>
 
int cube(int n)
{
        int sum = 0;
        while (n > 0) {
                sum += n % 10;
                n /= 10;
        }
        sum *= sum;
        sum *= sum; //или pow(a,b)
        return sum;
}
 
int main(void)
{
        int k = 0;
        while (1) {
                if (k == cube(k)) // cube - функция подсчета офк
                        printf("%d\n", k); //выводим на экран
        }
        return 0;
}
не компилил, но думаю, мелкие ошибки исправишь.

Добавлено через 55 секунд
Цитата Сообщение от BumerangSP Посмотреть сообщение
XaJlop4ik, ввод чего? Нескольких чисел?
C
1
scanf("%d %d %d", &a, &b, &c)
- ввод через пробел
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
27.02.2012, 22:43     Куб числа #16
Хм, стоп. Т.е. задание не на вычисление куба любого числа, так? Нужно лишь такие числа найти?
XaJlop4ik
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 70
27.02.2012, 22:46  [ТС]     Куб числа #17
BumerangSP, ну да, по идеи
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
27.02.2012, 22:49     Куб числа #18
XaJlop4ik, тогда вот:
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
#include <conio.h>
#include <stdio.h>
#include <math.h>
int main()
{
 int i,a,x,s;
 double prod,p;
 for (i=1; i<32000; i++)
 {
  s=0;
  x=i;
  p=0;
  while (x!=0)
   {
    s=x%10;
    x=x/10;
    p+=s;
   }
 prod=pow(p,3);
 if (prod==i)
  printf("%5.1f ",prod);
 }
 getch();
 return 0;
}
Здесь он выводит все числа, куб суммы которых = самому себе. Предел до 32000.
XaJlop4ik
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 70
27.02.2012, 22:55  [ТС]     Куб числа #19
BumerangSP, Спасибо!
только один вопрос: printf("%5.1f ",prod); - что это значит?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2012, 23:01     Куб числа
Еще ссылки по теме:

C++ Описать функцию возведения любого натурального числа n в куб без операции умножения, пользуясь следующим свойством: куб любого числа n равен
куб числа в С++ C++
C++ поиск среди чисел такого, которое при возведении в куб и сложении со всеми делителями является квадратом какого-нибудь числа

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

Или воспользуйтесь поиском по форуму:
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
27.02.2012, 23:01     Куб числа #20
XaJlop4ik, ну, printf() - это вывод на экран. %f - тип выводимого значения, 5.1 - это количество знаков после запятой (в данном случае 1), prod - название переменной. Ограничение на количество знаков пришлось использовать из-за функции pow, которая требует тип double (с плавающей запятой).
Yandex
Объявления
27.02.2012, 23:01     Куб числа
Ответ Создать тему
Опции темы

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