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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Перегрузка операторов для матрицы http://www.cyberforum.ru/cpp-beginners/thread1018052.html
Создаю класс матрицы, перегружаю операторы. Но... Matrix& Matrix::operator=(Matrix t) и Matrix& Matrix::operator *= (const Matrix &rhs) ...не хотят работать как надо. Не понимаю, в чем дело. #include <conio.h>
C++ Двумерный массив по ссылке Скажите, пожалуйста, что я не так делаю? Есть функция - на вход ей дается двумерный массив, который она должна изменить: string takingFirstLine(int sizeOfMyArray, int *game, string firstLine) { int index; // Для запоминания номера символа, где пробел (Для substr) bool enter=0; // Для считывания имени один раз int i,j=0; string nameOfFirstTeam; // Разбираем первую... http://www.cyberforum.ru/cpp-beginners/thread1018049.html
Решение нелинейного уравнения методом хорд C++ Builder
//--------------------------------------------------------------------------- #include <vcl.h> #include <math.h> #include <Math.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init)
Вывод максимального и минимального значения C++
Что не так? Выводит: 8 9 Максимальное значение 8004304 Минимальное значение 8 #include <iostream> #include <string> using namespace std; int main ()
C++ Поразрядная конъюнкция / Дизъюнкция / Исключающие, (&), (|), (^) http://www.cyberforum.ru/cpp-beginners/thread1018036.html
... cout << "\n 6 & 5 = " << (6 & 5); cout << "\n 6 | 5 = " << (6 | 5); cout << "\n 6 ^ 5 = " << (6 ^ 5); ... Результат:
C++ Найти номера всех максимальных элементов массива Дан массив а, состоящий из n целых чисел (n<=100). Найти номера всех максимальных элементов массива. за помощь спасибо) подробнее

Показать сообщение отдельно
AnyOne697
 Аватар для AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 532
25.11.2013, 06:41     Представить число в виде сумы кубов двух натуральных чисел
Ну... Это не такая уж и простая задача. К слову, обычно здесь помогают, а не пишут с нуля.
Ну да ладно. Влоб примерно так. Надо будет подумать над улучшением, а именно - как быстрее брать кубический корень, как пропускать очевидно неподходящие числа (и критерии этой "очевидности").

Дубль кода
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;
}
 
Текущее время: 06:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru