- •Оглавление
- •1. Вычисление нод алгоритмом Евклида
- •2. Нахождение нод и нок
- •3. Вычисление факториала
- •4. Вычисление факториала рекурсивно
- •5. Вычисление биноминального коэффициента
- •6. Разложение целого числа на сумму биноминальных коэффициентов
- •7. Сумма некоторых элементов массива
- •8. Модификация массива данных. Вариант 1.
- •9. Модификация массива данных. Вариант 2.
- •10. Работа с числами массива
- •11. Поиск совпадений чисел в массиве
- •12. Растяжение списка и вставка, удаление из списка и сжатие. Вариант 1.
- •13. Растяжение списка и вставка, удаление из списка и сжатие. Вариант 2.
- •14. Программа проверки глубины вложения скобок
- •15. Формирование двумерного массива
- •16. Вычисление определителя матрицы второго порядка
- •17. Вычисление определителя матрицы 3 - го порядка
- •18. Подсчет количества цифр в целом числе
- •26. Найти числа близнецы в [a,b]
5. Вычисление биноминального коэффициента
// Нахождение биноминального коэффициента P(n,k)
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <conio.h>
int fact(int i);
int _tmain(int argc, _TCHAR* argv[])
{
int n,k;
cout<<"Enter n >k ";
cin>>n;
cout<<"\n Enter k <n ";
cin>>k;
cout<<" \n P(n,k) = "<<fact(n)/(fact(k)*fact(n-k))<<"\n";
getch();
return 0;
}
int fact(int i)
{
if(i<=1) return 1;
return i*fact(i-1);
}
6. Разложение целого числа на сумму биноминальных коэффициентов
/* Разложение N>=11 на сумму трех биноминальных коэффициентов, при этом
a<=b<=c<=N */
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <string.h>
using namespace std;
#define N 12 // N- именнованная константа
int fact(int k);
void main()
{
int a,b,c,k,k1,k2,k3;
for(c=3;c<=N;c++)
for(b=2;b<=c;b++)
for(a=1;a<=b;a++)
{
k1=fact(c)/(6*fact(c-3));
k2=fact(b)/(2*fact(b-2));
k3=fact(a)/(fact(a-1));
if(N==k1+k2+k3)
{
cout<<" a= "<<a<<" b = "<<b<<" c = "<<c;
cin>>k;
return;
}
}
}
int fact(int k)
{
if(k<=1) return 1;
return k*fact(k-1);
}
7. Сумма некоторых элементов массива
/* Задан массив целых чисел А[10], найти сумму его четных членов и нечетных чисел */
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <conio.h>
#define SIZE 10 // SIZE - именнованная константа
int main()
{
int i,n;
int s1=0,s2=0,A[SIZE];
cout<<"Input n= \n";
cin>>n;
cout<<" Enter items of array A:\n";
for(i=0;i<=n-1;i++) cin>>A[i];
for(i=0;i<=n-1;i=i+2) s1=s1+A[i];
for(i=0;i<=n-1;i++)
if(A[i]%2!=0) s2=s2+A[i];
cout<<" Sum of even members = "<<s1;
cout<<" Sum of odd numbers = "<<s2;
getch();
return 0;
}
8. Модификация массива данных. Вариант 1.
/* Даны целые положительные числа а1,а2,...аn. Получить новую
последовательность, выбросив из исходной все члены со значением max(a1,a2,...,an).*/
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <conio.h>
#define SIZE 10 // SIZE - именнованная константа
int main()
{
int i,n,A[SIZE],B[SIZE],max,k=0;
cout<<"Enter n= \n";
cin>>n;
cout<<"Enter array A: \n";
for(i=0;i<n;i++) cin>>A[i];
max=A[0];
for(i=0;i<n;i++) if (A[i]>max)max=A[i];
for(i=0;i<=n-1;i++)
{
if (A[i]!=max)
{
B[k]=A[i];
k++;
}
}
cout<<"New array: \n";
for(i=0;i<=k-1;i++) cout<<B[i];
getch();
return 0;
}
9. Модификация массива данных. Вариант 2.
/* Даны целые положительные числа а1,а2,...аn. Получить новую
последовательность, выбросив из исходной все члены со значением max(a1,a2,...,an), не вводя нового массива*/
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <conio.h>
#define SIZE 10 //именнованная константа
int main()
{
int i,j,n,A[SIZE],max,k;
cout<<"Enter n= \n";
cin>>n;
cout<<"Enter array A: \n";
for(i=0;i<n;i++) cin>>A[i];
max=A[0];
for(i=0;i<n;i++) if (A[i]>max)max=A[i];
// Блок выкидывания элемента и сдвига последующих элементов
for(i=0;i<n;i++)
{
if(A[i]==max)
{
A[i]=A[i+1];
for(k=i+1;k<(n-1);k++) A[k]=A[k+1];
n--;
i--;
}
}
cout<<"New array: \n";
for(i=0;i<n;i++) cout<<” “<<A[i];
getch();
return 0;
}