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

Показ чисел, являющихся кубами в интервале - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 5.00
Злобный
2 / 2 / 0
Регистрация: 18.09.2010
Сообщений: 43
18.09.2010, 18:16     Показ чисел, являющихся кубами в интервале #1
Добренького всем здоровьица
Помогите, пожалуйста, с задачей:
Даются два целых числа[m, n]. Программа показывает числа, являющиеся кубами целых чисел в интервале заданных пользователем чисел, при вводе неверных данных выдает ошибку, должна быть возможность повторить программу.
1. Как понимаю, необходимо создать массив, по которому пойдет проверка и далее показ числа в интервале и числа, кубом которого оно является. Верно?
2. Как зациклировать? что-либо типа "пресс 1 ту старт, ор ноль ту энд"?
Заранее спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.09.2010, 18:16     Показ чисел, являющихся кубами в интервале
Посмотрите здесь:

C++ Определить количество членов последовательности, являющихся квадратами четных чисел
C++ Написать программу, которая находит заданное количество чисел, являющихся квадратами натуральных чисел, и выводит их на экран. Проверку "квадрат – не
Найти количество чисел a1(i=1,2,....,n), являющихся степенями пятерки C++
C++ Подсчет количества чисел в последовательности, являющихся большими его соседей
Определить, сколько чисел, являющихся квадратом целого числа, принадлежат заданному диапазону натуральных чисел C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
odip
Эксперт C++
 Аватар для odip
7225 / 3287 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
18.09.2010, 18:29     Показ чисел, являющихся кубами в интервале #2
Неверно - массив не нужен
Злобный
2 / 2 / 0
Регистрация: 18.09.2010
Сообщений: 43
18.09.2010, 18:36  [ТС]     Показ чисел, являющихся кубами в интервале #3
Цитата Сообщение от odip Посмотреть сообщение
Неверно - массив не нужен
А как тогда? Ведь числа же должны куда-то записаться
TheMachinist
 Аватар для TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
18.09.2010, 19:06     Показ чисел, являющихся кубами в интервале #4
Попробуй что-нибудь такое:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include < conio.h>
#include <iostream>
using namespace std; 
 
int main(){
 int max,min;
 cin >> min;
 cin >> max;
 
 for(int i = min; i <= max;i++)
     cout << i*i*i << endl;
 
 
  _getch();  
}
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
18.09.2010, 19:46     Показ чисел, являющихся кубами в интервале #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
using namespace std;
 
 
int main()
{
//[2..100)
    int max = 100;
    int min = 2;
 
    for (int i = min; i < max; ++i){
        for (int j = 1; j < i; ++j){
            if ( (j*j*j) == i ){
                cout << i <<" ";
                break;
            }
        }
    }
 
    return 0;
}
повтор ввода не делал

Добавлено через 14 минут
это решение "в лоб".

в цикле можно проверять j не до i а ,например, до i/2 и тп
Злобный
2 / 2 / 0
Регистрация: 18.09.2010
Сообщений: 43
18.09.2010, 20:17  [ТС]     Показ чисел, являющихся кубами в интервале #6
Спасибо огромнейшее) С меня пиво
В общем-то то, что нужно. Думаю, оба ваших кода скомбинировать, добавить проверку, и получится то, что хотят)
TheMachinist
 Аватар для TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
18.09.2010, 20:41     Показ чисел, являющихся кубами в интервале #7
С меня пиво


2. Как зациклировать? что-либо типа "пресс 1 ту старт, ор ноль ту энд"?
Можно сделать бесконечный цикл
C++
1
while(1)
и выводить на экран предложение нажать Esc чтобы выйти.
Злобный
2 / 2 / 0
Регистрация: 18.09.2010
Сообщений: 43
19.09.2010, 18:34  [ТС]     Показ чисел, являющихся кубами в интервале #8
Ээ.. А как заставить её обрабатыыать в том числе и отрицательные числа? Игнорирует их
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
19.09.2010, 18:53     Показ чисел, являющихся кубами в интервале #9
Цитата Сообщение от Злобный Посмотреть сообщение
Ээ.. А как заставить её обрабатыыать в том числе и отрицательные числа? Игнорирует их
отрицательные числа - чтобы кубы отрицательных показывала?
Злобный
2 / 2 / 0
Регистрация: 18.09.2010
Сообщений: 43
19.09.2010, 19:08  [ТС]     Показ чисел, являющихся кубами в интервале #10
Ну да... Интервал задаю, даже если минимальное = минус сто, отсчет идет от нуля(8, 27, 64 и т.д.)
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
19.09.2010, 19:12     Показ чисел, являющихся кубами в интервале #11
и никогда не будит, потомучто j*j*j всегда >0 и это j*j*j сравнивается с отрицательными i. Тоесть условие никогда не выполняется
Злобный
2 / 2 / 0
Регистрация: 18.09.2010
Сообщений: 43
19.09.2010, 19:33  [ТС]     Показ чисел, являющихся кубами в интервале #12
Разобрался) работает, но как-то громоздко получилось

Добавлено через 17 минут
Цитата Сообщение от PointsEqual Посмотреть сообщение
и никогда не будит, потомучто j*j*j всегда >0 и это j*j*j сравнивается с отрицательными i. Тоесть условие никогда не выполняется
Ну а как-то вообще реализовать это можно или нет?
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
19.09.2010, 19:42     Показ чисел, являющихся кубами в интервале #13
Злобный, правильно.

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
#include <iostream>
#include <conio.h>
 
using namespace std;
 
 
int main()
{
//[-100..100)
    int max = 100;
    int min = -100;
 
    for (int i = min; i < max; ++i){
 
        for (int j = 1; j < abs(i/2); ++j){
 
            float tmp = j*j*j;
 
            if( i < 0 ) tmp *= -1;
 
            if ( (tmp) == i ){
                cout << i <<" ";
                break;
            }
        }
    }
 
    return 0;
}
Добавлено через 1 минуту
Цитата Сообщение от PointsEqual Посмотреть сообщение
abs(i/2);
тут надо в модуль взять, а то условие не выполнится тоже

Добавлено через 3 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main()
{
//[-100..100)
    int max = 100;
    int min = -100;
 
    for (int i = min; i < max; ++i){
        for (int j = 1; j < abs(i/2); ++j){
            float tmp = j*j*j;
            if ( tmp == abs(i) ){
                cout << i <<" ";
                break;
            }
        }
    }
 
    return 0;
}
Злобный
2 / 2 / 0
Регистрация: 18.09.2010
Сообщений: 43
19.09.2010, 20:16  [ТС]     Показ чисел, являющихся кубами в интервале #14
Цитата Сообщение от PointsEqual Посмотреть сообщение
float tmp = j*j*j;
Обязательно float, или можно инт?
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
19.09.2010, 20:17     Показ чисел, являющихся кубами в интервале #15
можно инт
Злобный
2 / 2 / 0
Регистрация: 18.09.2010
Сообщений: 43
19.09.2010, 21:01  [ТС]     Показ чисел, являющихся кубами в интервале #16
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
37
38
39
#include <iostream>
using namespace std;
 
 
int main()
{  
    int max;
    int min;
    cout << "Enter interval min: ";
    cin >> min;
    while (!cin.good())
          {
          cin.clear ();
          cin.ignore (256, '\n');
          cout << "Try again: "; 
          cin >> min;
          }
    cout << "Enter interval max: ";
    cin >> max;
    while (!cin.good())
          {
          cin.clear ();
          cin.ignore (256, '\n');
          cout << "Try again: "; 
          cin >> max;
          } 
                   for (int i = min; i < max; ++i){
        for (int j = 1; j < abs(i/2); ++j){
            int tmp = j*j*j;
            if ( tmp == abs(i) ){
                cout << i <<" is number "<<  j <<" in cube! \n";
            
                break;
            }
        }
    }
system ("pause");
    return 0;
}
Выводит, но при отрицательных показывает положительное основаниеО_о
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
19.09.2010, 22:41     Показ чисел, являющихся кубами в интервале #17
C++
1
2
3
4
5
6
7
8
            if ( tmp == abs(i) ){
 
                cout << i <<" is number ";
                (i<0) ? cout<< (j*(-1)) <<" " : cout<<j <<" " ;
                cout<<"in cube!"<<endl;
 
                break;
            }
Злобный
2 / 2 / 0
Регистрация: 18.09.2010
Сообщений: 43
20.09.2010, 21:29  [ТС]     Показ чисел, являющихся кубами в интервале #18
ап:
Проблема с циклом. do-while по "нажмите 1 чтоб продолжить, 0 чтоб завершить" в любом случае прекращает программу. В чём загвоздка?
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
20.09.2010, 21:34     Показ чисел, являющихся кубами в интервале #19
Цитата Сообщение от Злобный Посмотреть сообщение
ап:
Проблема с циклом. do-while по "нажмите 1 чтоб продолжить, 0 чтоб завершить" в любом случае прекращает программу. В чём загвоздка?
А где код то ?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.09.2010, 00:16     Показ чисел, являющихся кубами в интервале
Еще ссылки по теме:

Из множества целых чисел получить множество чисел, являющихся квадратами нечетных чисел C++
Найти количество чисел, являющихся полными квадратами C++
C++ Найти количество чисел, являющихся полными квадратами

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

Или воспользуйтесь поиском по форуму:
Злобный
2 / 2 / 0
Регистрация: 18.09.2010
Сообщений: 43
21.09.2010, 00:16  [ТС]     Показ чисел, являющихся кубами в интервале #20
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
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
using namespace std;
 
 
int main()
{  
int a;
cout << "Enter 1 to start, or 0 to end and press ENTER: \n";
cin >> a;
do 
{
    int max;
    int min;
    cout << "Enter interval min: ";
    cin >> min;
    while (!cin.good())
          {
          cin.clear ();
          cin.ignore (256, '\n');
          cout << "Try again: "; 
          cin >> min;
          }
    cout << "Enter interval max: ";
    cin >> max;
    while (!cin.good())
          {
          cin.clear ();
          cin.ignore (256, '\n');
          cout << "Try again: "; 
          cin >> max;
          } 
                   for (int i = min; i < max; ++i){
        for (int j = 1; j < abs(i/2); ++j){
            int tmp = j*j*j;
            if ( tmp == abs(i) ){
                cout << i <<" is number "<<  j <<" in cube! \n";
            
                break;
            }
        }
    }
 
    return 0;
}
while (a > 0)
return 0;
}
с циклами не дружу, жду критики и помощи
Yandex
Объявления
21.09.2010, 00:16     Показ чисел, являющихся кубами в интервале
Ответ Создать тему
Опции темы

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