Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.60/50: Рейтинг темы: голосов - 50, средняя оценка - 4.60
Заблокирован
Эксперт функциональных языков программированияЭксперт С++

Посоветуйте функции для арифметики больших целых чисел

06.06.2024, 22:40. Показов 11521. Ответов 166
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сегодня начал писать свою библиотеку для работы с большими целыми числами.

Пока что реализовал следующие функции:

C++
1
2
3
4
5
6
7
8
9
10
11
12
std::string Add(const std::string&, const std::string&);
std::string Subtract(const std::string&, const std::string&);
std::string Multiply(const std::string&, const std::string&);
std::string Divide(const std::string&, const std::string&);
std::string Remainder(const std::string&, const std::string&);
std::string Power(const std::string&, const int);
std::string Factorial(const int);
std::string GCD(const std::string&, const std::string&);
std::string LCM(const std::string&, const std::string&);
std::string Abs(const std::string&);
std::string ISqrt(const std::string&);
std::string Fibonacci(const int);
Все эти функции работают с очень большими числами.
Что еще можете посоветовать? Какие важные функции я упустил?
1
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.06.2024, 22:40
Ответы с готовыми решениями:

Ограничения VBA в реализации арифметики длинных (больших) чисел
Итак, моя юбилейная - первая тема на этом форуме. Здравствуйте Товарищи! Необходима помощь или совет от спецов этого форума. Работаю над...

Быстрая сортировка массива целых чисел, с использованием указателей и адресной арифметики
# include <stdio.h> # include <stdlib.h> void QuickSort(int *a, int size){ int *left = a; // Адрес 1 элемента int *right...

Написать шаблоны функций для для вычисления суммы произведений двух соседних чисел для трех целых чисел и в одномерном массиве целых чисел
Написать шаблоны функций для для вычисления суммы произведений двух соседних чисел для трех целых чисел и в одномерном массиве целых чисел:...

166
Заблокирован
Эксперт функциональных языков программированияЭксперт С++
07.06.2024, 16:22  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Алексей1153 Посмотреть сообщение
для вызова статической функции это одинаковые записи. Объект не обязателен
тогда может вообще в класс не засовывать математические функции? Пусть валяются отдельно.
Чтобы не было таких приколов:
BigInt d = a.Add(b, c);

Добавлено через 1 минуту
Цитата Сообщение от Алексей1153 Посмотреть сообщение
я и говорю - покажи пример
прописал внутри класса в части public
C++
1
static int IntegerQ(const std::string&);
а за пределами класса саму функцию
C++
1
2
3
4
int BigInt::IntegerQ(const std::string& s)
{
    // ...
}
и не работает
0
фрилансер
 Аватар для Алексей1153
6508 / 5758 / 1135
Регистрация: 11.10.2019
Сообщений: 15,406
07.06.2024, 16:23
Цитата Сообщение от Royal_X Посмотреть сообщение
тогда может вообще в класс не засовывать математические функции
сделай их friend

Цитата Сообщение от Royal_X Посмотреть сообщение
Чтобы не было таких приколов:
BigInt d = a.Add(b, c);
а что тут смущает то? Ну замени a. на BigInt::
0
Заблокирован
Эксперт функциональных языков программированияЭксперт С++
07.06.2024, 16:24  [ТС]
Цитата Сообщение от Алексей1153 Посмотреть сообщение
а что тут смущает то?
то что в сложении участвуют три игрока)))
0
738 / 705 / 110
Регистрация: 29.05.2015
Сообщений: 4,351
07.06.2024, 16:25
http://cppalgo.blogspot.com/2010/05/blog-post.html
0
Заблокирован
Эксперт функциональных языков программированияЭксперт С++
07.06.2024, 16:26  [ТС]
Цитата Сообщение от Алексей1153 Посмотреть сообщение
сделай их friend
типа сделать функции приватными, но friend?
0
фрилансер
 Аватар для Алексей1153
6508 / 5758 / 1135
Регистрация: 11.10.2019
Сообщений: 15,406
07.06.2024, 16:30
Цитата Сообщение от Royal_X Посмотреть сообщение
и не работает
какую ошибку пишет компилятор или линкер?

наверное, нужно inline её сделать, раз она в заголовке

C++
1
2
3
4
inline int BigInt::IntegerQ(const std::string& s)
{
    // ...
}
Цитата Сообщение от Royal_X Посмотреть сообщение
то что в сложении участвуют три игрока)))
я же показал, как это заменить

Цитата Сообщение от Royal_X Посмотреть сообщение
типа сделать функции приватными, но friend?
нет, friend приватными не получится. Они как раз для снаружи

Добавлено через 3 минуты
Royal_X,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class BigInt
{
public:
    friend BigInt operator+(const BigInt& a, const BigInt& b)
    {
        return BigInt{};//тут return Add(a,b);
    }
};
 
int main()
{
    BigInt a,b;
    auto c=a+b;
}
0
Заблокирован
Эксперт функциональных языков программированияЭксперт С++
07.06.2024, 16:31  [ТС]
Алексей1153, я бы еще такую логику бы понял

a.Add(b)

но a.Add(b, c) это бред. Поэтому и говорю, что их вообще нужно убрать из класса.

Сделаю отдельные функции Add(const BigInt&, const BigInt&)

Добавлено через 43 секунды
Цитата Сообщение от Алексей1153 Посмотреть сообщение
operator+
c этим проблем нет
0
фрилансер
 Аватар для Алексей1153
6508 / 5758 / 1135
Регистрация: 11.10.2019
Сообщений: 15,406
07.06.2024, 16:32
Цитата Сообщение от Royal_X Посмотреть сообщение
но a.Add(b, c) это бред. Поэтому и говорю, что их вообще нужно убрать из класса.
не думай об этом. Это то же самое, что

BigInt::Add(b, c)
0
Заблокирован
Эксперт функциональных языков программированияЭксперт С++
07.06.2024, 16:50  [ТС]
Алексей1153, я не знаю как реализовать, чтобы кроме a + b еще можно было вызвать BigInt::Add(a, b), но так, чтобы не вызывалось c.Add(a, b)

Добавлено через 1 минуту
Цитата Сообщение от Алексей1153 Посмотреть сообщение
Это то же самое, что
да, но получается некрасиво и вводит в заблуждение

может быть, математические функции тогда не нужно засовывать в класс

в классе только перегрузить операторы

Добавлено через 2 минуты
Цитата Сообщение от Royal_X Посмотреть сообщение
но математические функции тогда не нужно засовывать в класс
либо использовать в классе функции с одним аргументом для тех, где у меня сейчас два, а потом вызывать так

a.Divide(b)

а те, что с одним аргументом, то сделать вообще без и вызвать так

a.ISqrt()

Добавлено через 4 минуты
Цитата Сообщение от Royal_X Посмотреть сообщение
a.Divide(b)
хотя, потом будет раздражать BigInt::Divide(a)
0
фрилансер
 Аватар для Алексей1153
6508 / 5758 / 1135
Регистрация: 11.10.2019
Сообщений: 15,406
07.06.2024, 16:55
Цитата Сообщение от Royal_X Посмотреть сообщение
можно было вызвать BigInt::Add(a, b), но так, чтобы не вызывалось c.Add(a, b)
напиши предложение в комитет стандартизации C++
0
Заблокирован
Эксперт функциональных языков программированияЭксперт С++
07.06.2024, 16:57  [ТС]
Алексей1153, я бы предпочел создать структуру или класс, который представляет валидные строки.
Для математических функций же сделать просто namespace, и не добавлять функции в класс. Т.е. у этих функций только параметры менять, чтобы они принимали объекты класса, структуры.
Перегрузить операторы вне класса, структуры.
0
Заблокирован
Эксперт функциональных языков программированияЭксперт С++
08.06.2024, 01:09  [ТС]
Алексей1153, сделал так:

Кликните здесь для просмотра всего текста
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
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
#include <iostream>
#include <string>
#include <algorithm>
#include <cctype>
 
class BigInt
{
    std::string value = "0";
    bool sign = false;
    bool nan = false;
    static int _IntegerQ(const std::string&);
    static bool _GreaterEqualQ(const BigInt&, const BigInt&);
public:
    
    BigInt(){}
 
    BigInt(const std::string& s)
        : value(s)
    {
        auto s_q = _IntegerQ(s);
        if (s_q == 0)
            nan = true;
        else if (s_q == -1)
        {
            value.erase(0, 1);
            sign = true;
        }
    }
 
    BigInt(const char* s) : BigInt(std::string(s)) {}
 
    BigInt(const BigInt& x)
        : value(x.value)
        , sign(x.sign)
        , nan(x.nan)
    {}
 
    BigInt& operator=(const BigInt& x)
    {
        value = x.value;
        sign = x.sign;
        nan = x.nan;
        return *this;
    }
 
    BigInt& operator=(const char* s)
    {
        value = std::string(s);
        auto s_q = _IntegerQ(value);
        if (s_q == 0)
            nan = true;
        else
            nan = false;
        if (s_q == -1)
        {
            value.erase(0, 1);
            sign = true;
        }
        else
            sign = false;
        return *this;
    }
 
    friend std::ostream& operator<<(std::ostream& out, const BigInt& x)
    {
        if (x.nan)
            return out << "NAN";
        if (x.sign)
            return out << '-' << x.value;
        return out << x.value;
    }
 
    friend BigInt operator+(const BigInt& x, const BigInt& y)
    {
        return Add(x, y);
    }
 
    friend BigInt operator-(const BigInt& x, const BigInt& y)
    {
        return Subtract(x, y);
    }
 
    friend BigInt operator*(const BigInt& x, const BigInt& y)
    {
        return Multiply(x, y);
    }
 
    friend BigInt operator/(const BigInt& x, const BigInt& y)
    {
        return Divide(x, y);
    }
 
    friend BigInt operator%(const BigInt& x, const BigInt& y)
    {
        return Remainder(x, y);
    }
 
    friend BigInt operator^(const BigInt& x, const int y)
    {
        return Pow(x, y);
    }
 
 
    friend BigInt Add(const BigInt&, const BigInt&);
    friend BigInt Subtract(const BigInt&, const BigInt&);
    friend BigInt Abs(const BigInt&);
    friend BigInt Multiply(const BigInt&, const BigInt&);
    friend BigInt Divide(const BigInt&, const BigInt&);
    friend BigInt Remainder(const BigInt&, const BigInt&);
    friend BigInt Pow(const BigInt&, const int);
    friend BigInt Factorial(const int);
    friend BigInt GCD(const BigInt&, const BigInt&);
    friend BigInt LCM(const BigInt&, const BigInt&);
    friend BigInt ISqrt(const BigInt&);
    friend BigInt Fibonacci(const int);
 
};
 
BigInt Add(const BigInt&, const BigInt&);
BigInt Subtract(const BigInt&, const BigInt&);
BigInt Abs(const BigInt&);
BigInt Multiply(const BigInt&, const BigInt&);
BigInt Divide(const BigInt&, const BigInt&);
BigInt Remainder(const BigInt&, const BigInt&);
BigInt Pow(const BigInt&, const int);
BigInt Factorial(const int);
BigInt GCD(const BigInt&, const BigInt&);
BigInt LCM(const BigInt&, const BigInt&);
BigInt ISqrt(const BigInt&);
BigInt Fibonacci(const int);
 
int main()
{
    BigInt a = "10";
    BigInt b = "-3";
    auto c = a + b;
    std::cout << c;
}
 
int BigInt::_IntegerQ(const std::string& s)
{
    //
}
 
bool BigInt::_GreaterEqualQ(const BigInt& x, const BigInt& y)
{
    //
}
 
BigInt Subtract(const BigInt& x, const BigInt& y)
{
    //
}
 
BigInt Add(const BigInt& x, const BigInt& y)
{
    //
}
 
BigInt Multiply(const BigInt& x, const BigInt& y)
{
    //
}
 
BigInt Divide(const BigInt& x, const BigInt& y)
{
    //
}
 
BigInt Remainder(const BigInt& x, const BigInt& y)
{
    //
}
 
BigInt Pow(const BigInt& x, const int p)
{
    //
}
 
BigInt Factorial(const int n)
{
    //
}
 
BigInt GCD(const BigInt& x, const BigInt& y)
{
    //
}
 
BigInt LCM(const BigInt& x, const BigInt& y)
{
    //
}
 
BigInt Abs(const BigInt& x)
{
    //
}
 
BigInt ISqrt(const BigInt& x)
{
    //
}
 
BigInt Fibonacci(const int n)
{
    //
}


Поля и функции класса приватные. Публичные только конструкторы.
Операторы +, -, *, /, %, ^, а также ostream перегружены для удобства
Математические функции вызываются без создания объекта класса.
Например, разрешены только Add(a, b) или a + b.
Т.е. не нужно писать BigInt::Add(a, b). Также нет глючного c.Add(a, b).

Короче, в целом доволен.
0
фрилансер
 Аватар для Алексей1153
6508 / 5758 / 1135
Регистрация: 11.10.2019
Сообщений: 15,406
08.06.2024, 05:54
Royal_X, а зачем функции наружу повытаскивал то ? И мусора в коде много получилось, и компилятор не сможет встроить функцию.
Начинать с подчёркивания идентификаторы не нужно - это UB, по сути (особенно подчёркивание и большая буква следом)

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
#include <iostream>
#include <string>
#include <algorithm>
#include <cctype>
 
class BigInt
{
    std::string value = "0";
    bool sign = false;
    bool nan = false;
private:    
    static int IntegerQ(const std::string& s){return {};}
    static bool GreaterEqualQ(const BigInt& x, const BigInt& y){return {};}
public:
    
    BigInt()=default;
    /*
    BigInt(const BigInt& x)=default;
    BigInt(BigInt&& x)=default;
    BigInt& operator=(const BigInt& x)=default;
    BigInt& operator=(BigInt&& x)=default;
    ~BigInt()=default;
    */
    BigInt(const std::string& s)
        : value(s)
    {
        auto s_q = IntegerQ(s);
        if (s_q == 0)
            nan = true;
        else if (s_q == -1)
        {
            value.erase(0, 1);
            sign = true;
        }
    }
 
    BigInt(const char* s) : BigInt(std::string(s)) {}
 
    BigInt& operator=(const char* s)
    {
        value = std::string(s);
        auto s_q = IntegerQ(value);
        if (s_q == 0)
            nan = true;
        else
            nan = false;
        if (s_q == -1)
        {
            value.erase(0, 1);
            sign = true;
        }
        else
            sign = false;
        return *this;
    }
 
    friend std::ostream& operator<<(std::ostream& out, const BigInt& x)
    {
        if (x.nan)
            return out << "NAN";
        if (x.sign)
            return out << '-' << x.value;
        return out << x.value;
    }
 
    friend BigInt operator+(const BigInt& x, const BigInt& y){return Add(x, y);}
    friend BigInt operator-(const BigInt& x, const BigInt& y){return Subtract(x, y);}
    friend BigInt operator*(const BigInt& x, const BigInt& y){return Multiply(x, y);}
    friend BigInt operator/(const BigInt& x, const BigInt& y){return Divide(x, y);}
    friend BigInt operator%(const BigInt& x, const BigInt& y){return Remainder(x, y);}
    friend BigInt operator^(const BigInt& x, const int y){return Pow(x, y);}
 
    friend BigInt Add(const BigInt& x, const BigInt& y){return {};}
    friend BigInt Subtract(const BigInt& x, const BigInt& y){return {};}
    friend BigInt Multiply(const BigInt& x, const BigInt& y){return {};}
    friend BigInt Divide(const BigInt& x, const BigInt& y){return {};}
    friend BigInt Remainder(const BigInt& x, const BigInt& y){return {};}
    friend BigInt Pow(const BigInt& x, const int p){return {};}
    friend BigInt Factorial(const int n){return {};}
    friend BigInt GCD(const BigInt& x, const BigInt& y){return {};}
    friend BigInt LCM(const BigInt& x, const BigInt& y){return {};}
    friend BigInt Abs(const BigInt& x){return {};}
    friend BigInt ISqrt(const BigInt& x){return {};}
    friend BigInt Fibonacci(const int n){return {};}
};
 
int main()
{
    BigInt a = "10";
    BigInt b = "-3";
    auto c = a + b;
 
    BigInt d=std::move(b);
    d=std::move(b);
    BigInt e(std::move(b));
 
    std::cout << c;
}
Добавлено через 5 минут
Цитата Сообщение от Алексей1153 Посмотреть сообщение
/*
    BigInt(const BigInt& x)=default;
    BigInt(BigInt&& x)=default;
    BigInt& operator=(const BigInt& x)=default;
    BigInt& operator=(BigInt&& x)=default;
    ~BigInt()=default;
    */
это я прикрыл, оно тут, вроде, не нужно. Ничего не удалено
0
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
08.06.2024, 06:58
Цитата Сообщение от Royal_X Посмотреть сообщение
я не знаю как реализовать, чтобы кроме a + b еще можно было вызвать BigInt::Add(a, b), но так, чтобы не вызывалось c.Add(a, b)
Например так:
Кликните здесь для просмотра всего текста
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
template <typename Op, typename A1, typename A2 = A1>
class BinaryOp : Op 
{
public:
    BinaryOp(const A1& a, const A2& b)
        : a(a), b(b)
    {}
    operator auto() const &&
    {
        return Op::operator()(a, b);           
    }
    BinaryOp(BinaryOp const&) = delete;
    BinaryOp& operator=(BinaryOp const&) = delete; 
 
private:
    A1 const& a;
    A2 const& b;
};
 
class BigInt {
public:
    BigInt operator+(const BigInt&) const
    {
        return {};
    }
    BigInt operator-(const BigInt&) const
    {
        return {};
    }
    BigInt pow(int) const
    {
        return {};
    }
 
    using Add = BinaryOp<decltype([](const auto& a, const auto& b) { return a + b; }), BigInt>;
    using Subtract = BinaryOp<decltype([](const auto& a, const auto& b) { return a - b; }), BigInt>;
    using Pow = BinaryOp<decltype([](const auto& x, int p) { return x.pow(p); }), BigInt, int>;
};
 
int main() {
 
    BigInt a;
    BigInt b;
 
    auto x = a + b;
 
    auto r = BigInt::Add(a, b);
}
1
Заблокирован
Эксперт функциональных языков программированияЭксперт С++
08.06.2024, 10:59  [ТС]
Алексей1153, да, так лучше. Вроде всё так, как я и хотел. Операторы перегружены, математические функции вводятся сокращенно (Add, а не BigInt::Add) и не вызываются через объекты класса, типа a.Add.

Возможно, стоит еще перегрузить операторы сравнения. Добавить get_value(), get_sign(), get_nan(), print()...
В планах еще сделать класс для дробей BigFraction с полями numerator и denominator типа BigInt. Но я не представляю, как правильно сделать. Сделать наследование от BigInt?
0
фрилансер
 Аватар для Алексей1153
6508 / 5758 / 1135
Регистрация: 11.10.2019
Сообщений: 15,406
08.06.2024, 11:08
Цитата Сообщение от Royal_X Посмотреть сообщение
Сделать наследование от BigInt?
нет, просто новый класс с двумя полями типа BigInt
1
Заблокирован
Эксперт функциональных языков программированияЭксперт С++
08.06.2024, 11:12  [ТС]
Цитата Сообщение от Алексей1153 Посмотреть сообщение
нет, просто новый класс с двумя полями типа BigInt
но типа этот класс должен находиться под классом BigInt в единице трансляции?
0
фрилансер
 Аватар для Алексей1153
6508 / 5758 / 1135
Регистрация: 11.10.2019
Сообщений: 15,406
08.06.2024, 11:16
Royal_X, BigInt можно поместить в один заголовок. Дробь - в другой. Для дроби нужно будет подключить заголовок с BigInt

а можно всё в одном заголовке - как больше нравится
0
Заблокирован
Эксперт функциональных языков программированияЭксперт С++
08.06.2024, 13:28  [ТС]
Цитата Сообщение от Алексей1153 Посмотреть сообщение
а можно всё в одном заголовке - как больше нравится
я помещу всё в один

в планах потом создать статическую библиотеку, но нужно будет сделать так, чтобы в заголовке библиотеки были только объявления

Добавлено через 49 минут
Алексей1153, кстати, я в посте 52 делал правильно, типа нужно еще объявлять вне класса

C++
1
2
3
4
5
6
7
8
9
10
11
12
BigInt Add(const BigInt&, const BigInt&);
BigInt Subtract(const BigInt&, const BigInt&);
BigInt Abs(const BigInt&);
BigInt Multiply(const BigInt&, const BigInt&);
BigInt Divide(const BigInt&, const BigInt&);
BigInt Remainder(const BigInt&, const BigInt&);
BigInt Pow(const BigInt&, const int);
BigInt Factorial(const int);
BigInt GCD(const BigInt&, const BigInt&);
BigInt LCM(const BigInt&, const BigInt&);
BigInt ISqrt(const BigInt&);
BigInt Fibonacci(const int);
иначе, в main не вызываются математические функции.

т.е. нужно объявлять дважды: один раз внутри класса с friend перед именем, и другой раз вне класса без friend.

Только после этого, можно вызвать, например, Add("1", "2")

Добавлено через 11 минут
Алексей1153, и вообще, какой смысл от friend, если я определил все математические функции внутри класса. Этот friend был необходим раньше, когда у меня функции определялись вне класса, чтобы я имел доступ к закрытым полям класса.

Добавлено через 4 минуты
Алексей1153, единственный смысл от friend это то, что если заменю на static, то потом придется вызывать в main через BigInt::, сейчас это не нужно, пишу сразу имя функции. Ладно, оставлю friend, так лучше.
0
Заблокирован
Эксперт функциональных языков программированияЭксперт С++
08.06.2024, 13:45  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
т.е. нужно объявлять дважды: один раз внутри класса с friend перед именем, и другой раз вне класса без friend.
но этот подход кажется неправильным. ошибок и предупреждений при компиляции нет, но это не нравится IntelliSense, выделяет красным строки перегрузки операторов
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.06.2024, 13:45

Дан файл целых чисел. Подсчитать сумму чисел, больших числа N
program p1; var fx:text; s,k,n:real; c:integer; begin assign(fx,'C:\Users\Пользователь\Documents\аипас.txt'); reset (fx); ...

В массиве целых чисел подсчитать количество нечётных положительных чисел, больших 50
В массиве целых чисел подсчитать количество нечётных положительных чисел, больших 50. Вывести массив, сами числа и их количество. Если...

Найти сумму целых чисел положительных чисел, больших 20, меньших 100 и кратных 3
Найти сумму целых чисел положительных чисел, больших 20, меньших 100 и кратных 3.

Сравнить функции(рекурсивную и итерационную) по скорости выполнения для больших чисел
Вот мой код вычисления Факториала. а как посчитать время выполнения?Функции timeGetTime и GetTickCount и как их применить? ...

Для последовательности целых, оканчивающейся "8", определить число чисел, больших первого введенного числа
Помогите, пожалуйста, с заданием. Для последовательности целых чисел, оканчивающихся числом 8, определить количество чисел, больших...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru