Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
1 / 1 / 0
Регистрация: 15.11.2011
Сообщений: 34

Реализовать код данной функции, но через рекурсию

21.04.2013, 22:06. Показов 3038. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер. Прошу помочь реализовать функцию Mult с помощью рекурсии. Там формируется матрица произведений. Вот сделть, чтобы она формировалась рекурсивно. Эта функция находится в function.cpp. Заранее большое спасибо за ответы и советы)

Собственно вот задание Имеется 2*N чисел. Известно, что их можно разбить на пары таким образом, что произведения чисел в пара:х равны. Сделать разбиение, если числа:
а) натуральные;
б) целые.
Решение: В качестве входных данных будет массив, записанный в файл. Количество элементов в нем должно быть четное, для того, чтобы можно было сформировать пары чисел. Задача будет решена путем построения двумерной матрицы (n*n), где n – количество элементов в исходном массиве. Каждый элемент такой матрицы будет содержать произведение элементов из исходного массива, рассматриваемого относительно индексов в двумерном массиве. Например, в двумерной матрице элемент с индексами (1,2) будет являться произведением элементов из исходного массива с индексами (1) и (2) соответственно. Если исходный массив можно разбить на пары чисел с одинаковым произведением между ними, то любая строка двумерной матрицы будет содержать одно повторяющееся значение. Цель программы – построить двумерную матрицу и отыскать такое произведение. Отыскав это произведение, будет несложно построить пары чисел с одинаковым произведением. Замечание: исходные пары будут содержать числа в единственном экземпляре, или другими словами, повторяющиеся пары не будут учитываться. Это будет продемонстрировано в контрольном примере ниже.
Программа написана таким образом, что она учитывает сразу 2 варианта задания, когда числа натуральные и когда числа целые.
Я не прикрепил файл с входными данными и заголовочный файл.
файл Function.cpp
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
#include <iostream>
#include <math.h>
#include "Function.h"
using namespace std;
 
int StrToInt(char * str) 
{
    int len=strlen(str);
    int temp=0;
    //переменная для формирования числа
    int i;
    if (str[0]!='-')
        i=0;
    //условие на проверку какое число: отрицательное или положительное
    else
        i=1;
    for (i;i<len;i++)
    {
        switch (str[i])
        {
            case '1':
                temp+=1*pow(10.0,double(len-i-1));
                break;
            case '2':
                temp+=2*pow(10.0,double(len-i-1));
                break;
            case '3':
                temp+=3*pow(10.0,double(len-i-1));
                break;
            case '4':
                temp+=4*pow(10.0,double(len-i-1));
                break;
            case '5':
                temp+=5*pow(10.0,double(len-i-1));
                break;
            case '6':
                temp+=6*pow(10.0,double(len-i-1));
                break;
            case '7':
                temp+=7*pow(10.0,double(len-i-1));
                break;
            case '8':
                temp+=8*pow(10.0,double(len-i-1));
                break;
            case '9':
                temp+=9*pow(10.0,double(len-i-1));
                break;
            case '0':
                temp+=0*pow(10.0,double(len-i-1));
                break;
        }
    }
    if (str[0]=='-')
        temp=-temp;
    //если число отрицательное
    return temp;
}
 
void AnalizingStr(char * str, int * arr1, int n)
{
    int i=0;
    char * tmpstr = new char [10];
    //временная строка для каждого числа из файла
    int j=0;
    int k=0;
    while (str[i]!='\0')
    {
        if (str[i]!=' ')
        {
            tmpstr[j]=str[i];
            j++;
            if ((str[i+1]==' ') || (str[i+1]=='\0'))
            {
                tmpstr[j]='\0';
                j=0;
                arr1[k]=StrToInt(tmpstr);
                //вызов функции перевода числа из символьного типа в числовой
                k++;
            }
        }
        i++;
    }
    delete [] tmpstr;
}
 
int Mult(int * arr1, int * arr2, int n, int & m)
{
    m=0;
    //количество элементов в массиве, содержащий пары
    int ** indexes = new int * [n];
    //двумерная матрица для построения произведений различных пар
    int i,j,k;
    //счетчики
    for (i=0;i<n;i++)
        indexes[i]=new int [n];
    for (i=0;i<n;i++)
    {
        for (j=0;j<n;j++)
        {
            indexes[i][j]=arr1[i]*arr1[j];
            //формирование произведений чисел в каждой паре
        }
    }
    int mult;
    //переменная для поиска одинакового произведения в парах
    int count;
    //переменная, отвечающая за количество встретившихся одинаковых произведений в строках двумерной матирцы
    int globalflag=0;
    //флаг, отвечающий за то, были ли построены все пары из входного массива
    int flag;
    //локальный флаг для исключения повторений в результирующих парах
    for (i=1;i<n;i++)
    {
        count=0;
        mult=indexes[0][i];
        for (j=1;j<n;j++)
        {
            for (k=0;k<n;k++)
            {
                if ((j!=k) && (indexes[j][k]==mult))
                {
                    //если в строке найдено искомое произведение
                    count++;
                    break;
                }
            }
        }
        if (count==(n-1))
        {
            //если искомое произведение есть во всех строках двумерной матрицы
            globalflag=1;
            for (j=0;j<n;j++)
            {
                for (k=0;k<n;k++)
                {
                    //циклы по двумерной матрице для формирования пар
                    if (indexes[j][k]==mult)
                    {
                        //если в строке найдено искомое произведение
                        flag=0;
                        for (int h=0;h<m;h+=2)
                        {
                            //проверка на иключение повторения пар
                            if ((arr2[h]==arr1[j]) && (arr2[h+1]==arr1[k]))
                                flag=1;
                            if ((arr2[h]==arr1[k]) && (arr2[h+1]==arr1[j]))
                                flag=1;
                        }
                        if (flag==0)
                        {
                            //если пара чисел не встречается в уже составленных парах, то записываем ее в результирующий массив
                            arr2[m++]=arr1[j];
                            arr2[m++]=arr1[k];
                        }
                    }
                }
            }
        }
    }
    for (i=0;i<n;i++)
        delete [] indexes[i];
    delete [] indexes;
    if (globalflag==1)
        return 1;   //если пары были построены
    else
        return 0;   //если пары не были построены
}
файл main.cpp
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include "Function.h"
using namespace std;
 
void main(int argc, char* argv[])
{
setlocale(0, "rus");
    char * filestr = new char [100];
    //строка для ввода адреса к файлу
    cout<<"Укажите адрес к файлу (с расширением):"<<endl;
    cin>>filestr;
    FILE * fr = fopen(filestr,"r");
 
    /*FILE * fr;
    if(argc!=2)//проверка аргументов на наличе
    {
        cout<<"Ошибка!"<<endl;
        exit(-1);
    }
    fr=fopen(argv[1],"r");//открываем файл на чтение, r-значит на чтение
    if(!fr) exit(-1);//проверка есть ли файл*/
 
    if (!fr)
    {
        //если файл не был найден
        delete [] filestr;
        cout<<"Файл не найден. Программа закрывается!"<<endl;
        system("pause");
        return;
    }
    delete [] filestr;
    cout<<endl;
    int count=0;
    //переменная для количества чисел в файле
    int countch=0;
    //переменная для количества символов в файле
    char ch;
    while ((ch=fgetc(fr))!='\n')
    {
        countch++;
        if (ch==' ')
            count++;
    }
    if ((count+1)%2!=0)
    {
        //если количество чисел в файле не четное
        fclose(fr);
        cout<<"Количество чисел в не четное! Пожалуйста исправьте входные данные и перезапустите программу."<<endl;
        return;
    }
    char * str = new char [countch+1];
    int * arr1 = new int [count+1];
    int * arr2 = new int [count+1];
    fseek(fr,0,SEEK_SET);
    //смещаем указатель на файл
    fgets(str,countch+1,fr);
    //считываем первую строку из файла с числами
    AnalizingStr(str,arr1,count+1);
    //вызов функции для анализа и перевода чисел из символьного типа в числовой
    int check;
    //переменная для проверки, построены ли пары чисел
    int m;
    //количество элементов в результирующем массиве, содержащем пары
    check=Mult(arr1,arr2,count+1,m);
    cout<<"Входной массив:"<<endl;
    for (int i=0;i<count+1;i++)
        cout<<arr1[i]<<" ";
    //вывод исходного массива
    cout<<endl;
    if (check==1)
    {
        //вывод пар чисел
        cout<<"Пары:"<<endl;
        for (int i=0;i<m;i+=2)
            cout<<"("<<arr2[i]<<","<<arr2[i+1]<<")"<<endl;
    }
    else
        cout<<"Не удалось сформировать пары"<<endl;
    delete [] str;
    delete [] arr1;
    delete [] arr2;
    fclose(fr);
    getch();
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.04.2013, 22:06
Ответы с готовыми решениями:

Реализовать перебор поддиректорий через рекурсию
Необходимо реализовать перебор поддиректорий через рекурсию Выводит только с первой папки: private void ListOfCatalogs(string...

Реализовать вывод чисел в диапазоне от 10 до 25 через рекурсию
Парни, нужно реализовать такое задание , но я сам нуб в этом а нужно очень. Помогите . Задание: Реализовать вывод чисел в диапазоне от...

Реализовать вывод чисел в диапазоне от 10 до 25 через рекурсию
Парни, нужно реализовать такое задание , но я сам нуб в этом а нужно очень. Задание: Реализовать вывод чисел в диапазоне от 10 до 25...

31
1 / 1 / 0
Регистрация: 15.11.2011
Сообщений: 34
22.04.2013, 13:06  [ТС]
Студворк — интернет-сервис помощи студентам
Кстати, да, идея хорошая!
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
22.04.2013, 13:23
Ну тогда вот
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 <stdio.h>
 
#define razmer 8
 
//Собсно сам массив
int array [razmer]= {1, 2, 3, 5, 6, 10, 15, 30}; 
 
//Это глобальная величина- произведение чисел
int pr; 
 
//параметр это индекс числа в массиве
//(в нашем случае индексы будут 0, 1, 2, 3) 
bool f (int index) {
 
 
 //В функции "сближаемся", идём от начала к концу,
 //если встретились- возвращаем true
 if (index==razmer/2)
  return true;
 else 
  if (array [index]* array [razmer- index- 1]!= pr) 
   return false;
  else 
   return (f(index+ 1));
}
 
//++++++++++++++++++++++++++++++++++++++++++++++++
 
int main()
{
    //НАйдём произведение чисел
    pr= array[0]* array[razmer- 1];
    
    printf ("%d\n", f (1));
    
    
    getchar ();
    return 0;
}
1
1 / 1 / 0
Регистрация: 15.11.2011
Сообщений: 34
22.04.2013, 15:33  [ТС]
kravam, Спасибо за код. Я тут пытался скомпилировать с этими исправлениями. Подправил исходный код, удалил лишнее, но в одном месте ошибка. Но я подозреваю, что исправив её, получится ещё море их.

файл: function.cpp

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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#include <iostream>
#include <math.h>
#include "Function.h"
#define razmer 8
using namespace std;
 
 
int StrToInt(char * str) 
{
    int len=strlen(str);
    int temp=0;
    //переменная для формирования числа
    int i;
    if (str[0]!='-')
        i=0;
    //условие на проверку какое число: отрицательное или положительное
    else
        i=1;
    for (i;i<len;i++)
    {
        switch (str[i])
        {
            case '1':
                temp+=1*pow(10.0,double(len-i-1));
                break;
            case '2':
                temp+=2*pow(10.0,double(len-i-1));
                break;
            case '3':
                temp+=3*pow(10.0,double(len-i-1));
                break;
            case '4':
                temp+=4*pow(10.0,double(len-i-1));
                break;
            case '5':
                temp+=5*pow(10.0,double(len-i-1));
                break;
            case '6':
                temp+=6*pow(10.0,double(len-i-1));
                break;
            case '7':
                temp+=7*pow(10.0,double(len-i-1));
                break;
            case '8':
                temp+=8*pow(10.0,double(len-i-1));
                break;
            case '9':
                temp+=9*pow(10.0,double(len-i-1));
                break;
            case '0':
                temp+=0*pow(10.0,double(len-i-1));
                break;
        }
    }
    if (str[0]=='-')
        temp=-temp;
    //если число отрицательное
    return temp;
}
 
void AnalizingStr(char * str, int * arr1, int n)
{
    int i=0;
    char * tmpstr = new char [10];
    //временная строка для каждого числа из файла
    int j=0;
    int k=0;
    while (str[i]!='\0')
    {
        if (str[i]!=' ')
        {
            tmpstr[j]=str[i];
            j++;
            if ((str[i+1]==' ') || (str[i+1]=='\0'))
            {
                tmpstr[j]='\0';
                j=0;
                arr1[k]=StrToInt(tmpstr);
                //вызов функции перевода числа из символьного типа в числовой
                k++;
            }
        }
        i++;
    }
    delete [] tmpstr;
 
}
 
 
 
//Собсно сам массив
int arr1 [razmer]; 
 
//Это глобальная величина- произведение чисел
int pr; 
 
//параметр это индекс числа в массиве
//(в нашем случае индексы будут 0, 1, 2, 3) 
bool f (int index) {
 
 
 //В функции "сближаемся", идём от начала к концу,
 //если встретились- возвращаем true
 if (index==razmer/2)
  return true;
 else 
  if (arr1 [index]* arr1 [razmer- index- 1]!= pr) 
   return false;
  else 
   return (f(index+ 1));
 printf ("%d\n", f(1));  
 
}
файл: main.cpp
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include "Function.h"
#define razmer 8
 
using namespace std;
 
void main(int argc, char* argv[])
{
    char * filestr = new char [100];
    //строка для ввода адреса к файлу
    cout<<"Input address to file with data:"<<endl;
    cin>>filestr;
    FILE * fr = fopen(filestr,"r");
 
    if (!fr)
    {
        //если файл не был найден
        delete [] filestr;
        cout<<"File not found! Program will close!"<<endl;
        system("pause");
        return;
    }
    delete [] filestr;
    cout<<endl;
    int count=0;
    //переменная для количества чисел в файле
    int countch=0;
    //переменная для количества символов в файле
    char ch;
    while ((ch=fgetc(fr))!='\n')
    {
        countch++;
        if (ch==' ')
            count++;
    }
    if ((count+1)%2!=0)
    {
        //если количество чисел в файле не четное
        fclose(fr);
        cout<<"Amount of counts is not uneven. Please, correct the input data and restart this program."<<endl;
        return;
    }
    char * str = new char [countch+1];
    int * arr1 = new int [count+1];
    fseek(fr,0,SEEK_SET);
    //смещаем указатель на файл
    fgets(str,countch+1,fr);
    //считываем первую строку из файла с числами
    AnalizingStr(str,arr1,count+1);
    //вызов функции для анализа и перевода чисел из символьного типа в числовой
    
 
 
 
    cout<<"Input array:"<<endl;
    for (int i=0;i<count+1;i++)
        cout<<arr1[i]<<" ";
    //вывод исходного массива
    cout<<endl;
 
 
    int pr;
        //НАйдём произведение чисел
    pr= arr1[0]* arr1[razmer- 1];
    
    printf ("%d\n", f(1));                //ооошииибкааа
    
    delete [] str;
    delete [] arr1;
    //delete [] arr2;
    fclose(fr);
    getch();
}
Добавлено через 2 минуты
c 90 по 113 строку вставил Ваш кусок в файл Фанкшн
с 65 по 69 строку вставил Ваш кусок в файл Майн, ошибка в 69 строке. не определён индификатор пишет. Может из-за области видимости в мейне не передаётся эта функция?

Можете дать подсказку, как ввести программу в эксплуатацию?
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
22.04.2013, 17:49
А где файл Function.h?
0
1 / 1 / 0
Регистрация: 15.11.2011
Сообщений: 34
22.04.2013, 17:51  [ТС]
Я думал не надо. Там ж прототипы только.
файл Function.h
C++
1
2
3
4
5
6
7
8
9
10
11
#ifndef _FUNCTION_
#define _FUNCTION_
 
int StrToInt(char * str);
//функция для перевода числа из символьного типа в числовой
void AnalizingStr(char * str, int * arr1, int n);
//функция для выделения чисел из строки в файле
//int Mult(int * arr1, int * arr2, int n, int & m);
//функция для формирования пар из исходного массива
 
#endif
ну плюс ещё исходные данные берутся из файла текстового в директории с файлами .cpp
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
22.04.2013, 18:02
Цитата Сообщение от lj23lj Посмотреть сообщение
ошибка в 69 строке. не определён индификатор пишет.
Так он на самом деле на определён. Где определёна функция f, скажи мне?
0
1 / 1 / 0
Регистрация: 15.11.2011
Сообщений: 34
22.04.2013, 18:14  [ТС]
Ой она в другом файле. тогда я в заголовочном её прототип напишу и вызову эту функцию в main.

Добавлено через 2 минуты
kravam, вышло. теперь программа согласно коду распечатывает 1. А как теперь сделать вывод пар в новом коде?
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
22.04.2013, 18: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
#include <stdio.h>
 
#define razmer 8
 
//Собсно сам массив
int array [razmer]= {1, 2, 3, 5, 6, 10, 15, 30}; 
 
//Это глобальная величина- произведение чисел
int pr; 
 
//параметр это индекс числа в массиве
//(в нашем случае индексы будут 0, 1, 2, 3) 
bool f (int index) {
 
 
 //В функции "сближаемся", идём от начала к концу,
 //если встретились- возвращаем true
 if (index==razmer/2)
  return true;
 else 
  if (array [index]* array [razmer- index- 1]!= pr) 
   return false;
  else 
   return (f(index+ 1));
}
 
//++++++++++++++++++++++++++++++++++++++++++++++++
 
int main()
{
    //НАйдём произведение чисел
    pr= array[0]* array[razmer- 1];
    
    int t= f (1);
    printf ("%d\n", t);
    
    if (t)
    for (int i= 0; i< razmer/2; i++) {
     printf ("%d %d\n", array[i], array [razmer- i- 1]);
    }
    
    getchar ();
    return 0;
}
1
1 / 1 / 0
Регистрация: 15.11.2011
Сообщений: 34
22.04.2013, 18:40  [ТС]
kravam, Спасибо большое.
Т.е в ответ на исходные данные (4 6 3 2 1 12), программа выдаёт:
1 //значит, что пары нашлись

и

4 -1414812757
6 -33686019
3 12
2 1

4,6,3,2,1,12 это как раз и есть значения, из которых формируется произведение. А два посторонних значения - это издержки?? И т.е надо как-то придумать, как из данных значений составить пары?

И ещё, а рекурсивность где конкретно проявляется?
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
22.04.2013, 18:54
Ты на мой код посмотри, у меня массив отсортированный, а
4 6 3 2 1 12
неотсортированный. Отсортируй, вставь в мою программу, измени razmer и всё будет круто. Рекурсивность в том проявляется, что f вызывает сама себя
0
1 / 1 / 0
Регистрация: 15.11.2011
Сообщений: 34
22.04.2013, 19:47  [ТС]
Да, точно. Всё получилось так, как и нужно. просто в неотсортированном при операциях этих, видать за диапазон выходили.
Ещё раз большое-пребольшое спасибо!

Добавлено через 11 минут
А как запустить проверку на то, если пары сформировать не удалось, т.к даже если нет этих пар, они всё равно формируются, но не правильно?

Добавлено через 23 минуты
Пытаюсь сделать, чтоб для несоставлямой цепочке пары не создавались.
Ф-ия bool f в файле Function возвращает в случае успеха (return 1), неуспеха (return 0).
И теперь в файле Main создал переменную для записи туда значения, которое возвращает туда эта функция. Так вот как взять это возвращаемое значение?
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
22.04.2013, 20:47
Да просто много вопросов в одной теме. Я подписывался на рекурсивное нахождение пар, не более.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.04.2013, 20:47

Как реализовать сортировки вставками и выбором через рекурсию?
Реализовать эти сортировки необходимо на ЯП Scheme, без циклов и присваивания! Реализуйте сортировку элементов списка двумя способами:...

Реализовать функцию для подсчёта суммы элементов массива через рекурсию
Доброго времени суток!Хочу реализовать функцию для суммы элементов массива через рекурсию (как реализовать через цикл-понимаю) ...

Впервые сталкиваюсь с prolog, пожалуйста реализовать умножение 2 на число, используя сложения, через рекурсию
Как я поняла, это должно выглядеть примерно так 2*(b+1) = 2+2*b на примере цифр 2*3 = 2+(2*2) = 2+(2+(2*1)) = 2+(2+2) = 2 + 4 = 6 ...

Описание функции через рекурсию
Описать логическую функцию ПОТОМОК(А,В), проверяющую, является ли человек с именем В потомком (ребенком, внуком, правнуком) человека с...

Вычисление значение функции через рекурсию
Смысл программы : Вычисление значения функции (double func) Только через рекурсию . Я пытался - у меня не получилось:cry: Прошу помощи...


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

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат» Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru