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

Динамический массив из целых чисел - C++

Восстановить пароль Регистрация
 
kap1
 Аватар для kap1
0 / 0 / 0
Регистрация: 29.03.2011
Сообщений: 4
29.03.2011, 23:54     Динамический массив из целых чисел #1
Плохо разбираюсь с массивами, поэтому нужна помощь написать кусок кода, где создается динамический массив и формирующий в нем множества всех целых чисел вида 2^k и 3^k меньших заданного числа N в порядке возрастания. вообще даже соображений нет, вот что накалякал
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
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
int main ()
{
    int N, k, a, b;
    k=1;
    a=2;
    b=3;
    cout<<"N="; cin>>N;
    int *i,j;
    j=100;
    i=new int[j];
          int z=1; 
          //for (int k=1;k<1000; k++) нужно ли это
          while (k) { //возводим а в степень z
          if (k & 1) z *= a;
          a *= a;
          k >>= 1;
  }
    if (z<=N) {
        z=i;
    }
        else {
            cout<<"i: "<<i<<endl;
        }
        delete i;
        return 0;
}
не знаю как все собрать и как добавить еще 3^k или лучше использовать pow?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2011, 23:54     Динамический массив из целых чисел
Посмотрите здесь:

C++ Динамический массив целых чисел
C++ Динамический массив целых
C++ Описать класс, реализующий простой динамический массив из целых чисел
C++ класс динамический массив целых чисел с конструкторами и деструкторами
C++ Создать динамический список из случайных целых чисел?
Задан динамический массив целых чисел Z C++
C++ В функцию передается несколько целых чисел. Создать из всех параметров динамический массив и вернуть указатель
Задан массив K(m) попарно различных целых чисел. Получить все перестановки целых чисел C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NightmareZ
 Аватар для NightmareZ
1336 / 559 / 37
Регистрация: 31.03.2009
Сообщений: 1,907
30.03.2011, 00:16     Динамический массив из целых чисел #2
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>
#include <cmath>
#include <memory>
 
int main()
{
    int n, k;
    std::cin >> n >> k;
 
    int* arr = new int[n];
 
    for (int i = 0; i < n; i++)
        arr[i] = static_cast<int>(std::pow(static_cast<float>(i), k));
 
    for (int i = 0; i < n; i++)
        std::cout << arr[i] << " ";
    std::cout << std::endl;
 
    delete[] arr;
 
    return 0;
}
kap1
 Аватар для kap1
0 / 0 / 0
Регистрация: 29.03.2011
Сообщений: 4
31.03.2011, 00:09  [ТС]     Динамический массив из целых чисел #3
NightmareZ, спасибо, как я понял создается массив из k^n (где n от 0 до введенного значения), буду отталкиваться от этого)
только вот в строчке
C++
1
arr[i] = static_cast<int>(std::pow(static_cast<float>(i), k));
нужно поменять местами число и степень
C++
1
arr[i] = static_cast<int>(std::pow(k, static_cast<float>(i)));
Вообщем слил массивы из последовательностей 2^k и 3^k, практически все сделал, кроме вот концовки, где этот общий массив из слиённых двух массивов сравнивается с числом. Там почему то получается последовательность чисел и в начале единица лишняя, допустим должно получится [ 1 2 3 4 8 9 16 27 ], а выводит [ 1 1 2 3 4 8 9 16 27 ] и так всегда. как от нее избавиться?
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
48
#include <stdio.h>
#include <iostream.h>
#include <math.h>
#include <memory>
 
int main () {
    int N;
    cout<<"N="; cin>>N;
     int n, m;
        n=10; 
        int* arr1 = new int[n];
        int* arr2 = new int[n];
        int* arr = new int[2*n];
        for (int i = 0; i < n; i++)
        arr1[i] = (pow(2,(i)));
        for (int k = 0; k < n; k++)
        arr2[k] = (pow(3,(k)));
        k = i = m = 0;
        do { 
           if (arr1[i] < arr2[k] ) 
           arr[m++] = arr1[i++]; 
           else 
            if (arr1[i] > arr2[k]) 
            arr[m++] = arr2[k++]; 
                 else { 
                     arr[m++] = arr1[i++];
                     arr[m++] = arr2[k++];
                 }
        } while ( i < n && k < n);
            while ( i < n) 
                arr[m++] = arr1[i++];
            while (k < n) 
                arr[m++] = arr2[k++];
 
        for (m = 0; m < 2*n; m++)
        {
             if( arr[m] <= N)
             {
        cout << arr[m] << " ";
             }
        }
 
        delete[] arr;
        delete[] arr1;
        delete[] arr2;
 
        return 0;
}
Yandex
Объявления
31.03.2011, 00:09     Динамический массив из целых чисел
Ответ Создать тему
Опции темы

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