Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.52/27: Рейтинг темы: голосов - 27, средняя оценка - 4.52
XaJlop4ik
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 70
1

Куб числа

27.02.2012, 21:51. Просмотров 5454. Ответов 20
Метки нет (Все метки)

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

Описать функцию возведения любого натурального числа n в куб без операции умножения, пользуясь следующим свойством: куб любого числа n равен
То есть {1}^{3}=1 {2}^{3}=3+5 {3}^{3}=7+9+11 Написала программу на С++...

Определить, что куб суммы цифр числа равен квадрату числа
Кто может решите пожалуйста задачу с помощью циклов. Задание 5: Пользователь...

куб числа в С++
Здравствуйте! У меня такая задумка, пользователь вводит число, а программа...

Определить, что куб суммы цифр числа равен А*А
Пользователь вводит целое число А. Программа должна определить, что куб суммы...

Все отрицательные числа массива возвести в куб и найти их сумму.
1.С клавиатуры вводится последовательность из N чисел. Все отрицательные числа...

20
Байт
Эксперт C
20051 / 12671 / 2664
Регистрация: 24.12.2010
Сообщений: 26,388
27.02.2012, 22:01 2
Цитата Сообщение от XaJlop4ik Посмотреть сообщение
уже заюзал цикл for все равно, не выходит
Показал бы, чего ты там заюзал. Тогда яснее бы стало, чем тебе можно помочь.
0
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. алгоритм детский, но все же.
0
Байт
Эксперт C
20051 / 12671 / 2664
Регистрация: 24.12.2010
Сообщений: 26,388
27.02.2012, 22:06 4
theonlymine, вы тут вычисляете куб, а не находите нужные числа. Кроме того нигде не сказано, что число - 3-значное.
Но ваш подход можно положить в основу алгоритма.
0
BumerangSP
4290 / 1412 / 463
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
27.02.2012, 22:20 5
А чем pow(x,y) не устраивает? Которая в math находится.
0
XaJlop4ik
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 70
27.02.2012, 22:22  [ТС] 6
theonlymine, спасибо, конечно, но мне не нужно вычислять сам куб. Мне нужно найти само число, которое равняется сумме кубов своих чисел
0
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);
0
BumerangSP
4290 / 1412 / 463
Регистрация: 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;
}
0
x1Mike7x
218 / 131 / 19
Регистрация: 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;  
}
1
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);
}
0
XaJlop4ik
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 70
27.02.2012, 22:34  [ТС] 11
theonlymine, ну все, теперь я точно запутался(
0
BumerangSP
4290 / 1412 / 463
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
27.02.2012, 22:36 12
XaJlop4ik, Вам дали полный рабочий код на первой странице. В чем тут путаться?
0
XaJlop4ik
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 70
27.02.2012, 22:37  [ТС] 13
BumerangSP, спасибо, а как сделать, что бы ввод осуществлялся через пробел?
0
BumerangSP
4290 / 1412 / 463
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
27.02.2012, 22:39 14
XaJlop4ik, ввод чего? Нескольких чисел?
0
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)
- ввод через пробел
1
BumerangSP
4290 / 1412 / 463
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
27.02.2012, 22:43 16
Хм, стоп. Т.е. задание не на вычисление куба любого числа, так? Нужно лишь такие числа найти?
0
XaJlop4ik
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 70
27.02.2012, 22:46  [ТС] 17
BumerangSP, ну да, по идеи
0
BumerangSP
4290 / 1412 / 463
Регистрация: 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.
0
XaJlop4ik
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 70
27.02.2012, 22:55  [ТС] 19
BumerangSP, Спасибо!
только один вопрос: printf("%5.1f ",prod); - что это значит?
0
BumerangSP
4290 / 1412 / 463
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
27.02.2012, 23:01 20
XaJlop4ik, ну, printf() - это вывод на экран. %f - тип выводимого значения, 5.1 - это количество знаков после запятой (в данном случае 1), prod - название переменной. Ограничение на количество знаков пришлось использовать из-за функции pow, которая требует тип double (с плавающей запятой).
1
27.02.2012, 23:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2012, 23:01

Как возвести числа в квадрат , куб (также в другие степени ) в с++?
помогите пожалуйста )

Составить программу возведения натурального числа в куб, учитывая указанную закономерность
Ребят, помогите пожалуйста, не могу никак решить эту задачу. Составить...

Если число - куб натурального числа то возвращать true, иначе false
Из задачника. Если данное число n - куб натурального числа то возвращать...


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

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

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