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

Представить число в виде сумы кубов двух натуральных чисел - C++

Восстановить пароль Регистрация
 
енот-полиглот
Сообщений: n/a
25.11.2013, 03:46     Представить число в виде сумы кубов двух натуральных чисел #1
Я только начинаю учится, напишите плиз программу задачей которой является представить число в виде сумы кубов двух натуральных чисел, заранее благодарен)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2013, 03:46     Представить число в виде сумы кубов двух натуральных чисел
Посмотрите здесь:

Среди чисел найти все те, которые можно представить в виде суммы квадратов двух натуральных чисел C++
Можно ли заданное натуральное число М представить в виде суммы квадратов двух натуральных чисел? C++
C++ Даны натуральное число n. Среди чисел 1, 2, …, n найти все те, которые можно представить в виде суммы квадратов двух натуральных чисел.
Даны натуральное число n. Среди чисел 1, 2, …, n найти все те, которые можно представить в виде суммы квадратов двух натуральных чисел C++
Вывести наименьшее натуральное число, которое можно представить двумя разными способами в виде суммы кубов двух натуральных чисел C++
Определить, можно ли представить число в виде суммы двух квадратов натуральных чисел C++
Найти все натуральные числа от 1 до N, представимые в виде суммы кубов двух натуральных чисел C++
Определить, можно ли представить число N в виде суммы кубов трех натуральных чисел C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
AnyOne697
 Аватар для AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 532
25.11.2013, 06:41     Представить число в виде сумы кубов двух натуральных чисел #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
29
30
31
32
33
34
35
36
#include <iostream>
#include <utility>
#include <cmath>
 
#define EPS 1e-5
 
typedef unsigned int uint;
 
std::pair < uint, uint >* to_cube_sum ( uint n ) {
    for ( uint i = 0; i < n; i++ ) { /* проходимся по всем числам меньше данного
                                        и если данное число за вычетом квадрата
                                        текущего - квадрат, то эти числа - искомые */
        double invcube = pow ( (double)(n - i*i*i), 1./3. );
        if ( (invcube - (uint)(invcube + EPS) ) < 2*EPS ) { // нечёткое сравнение
            return new std::pair < uint, uint > ( i, (uint)invcube );
        }
    }
    
    return nullptr; // в случае неуспеха возвращаем null
}
 
int main() {
    uint t;
    while ( !std::cin.eof () ) {
        std::cin >> t;
        auto p = to_cube_sum ( t );
        std::cout << t << ": ";
        if ( p != nullptr ) {
            std::cout << p->first << " " << p->second << std::endl;
        } else {
            std::cout << "not found" << std::endl;
        }
    }
    
    return 0;
}
Yandex
Объявления
25.11.2013, 06:41     Представить число в виде сумы кубов двух натуральных чисел
Ответ Создать тему
Опции темы

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