- •Оглавление
- •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]
10. Работа с числами массива
/* Даны целые числа а1,а2,...аn. Получить сумму трех чисел данной последовательности, которые кратны 5, нечетны, отрицательны и удовлетворяют условию |ai|>=i^2 */
#include "stdafx.h"
#include <math.h> //библиотека математических функций
#include <iostream>
using namespace std;
#include <conio.h>
#define SIZE 10
int main()
{
int i,n,A[SIZE],k=0,s=0;
cout<<"Enter n= ";
cin>>n;
cout<<"Enter array A: \n";
for(i=0;i<=n-1;i++) cin>>A[i];
for(i=0;i<n;i++)
{
if (((A[i]%2)!=0)&&(A[i]<0)&&((A[i]%5)==0)&&(abs(A[i])>=i*i))
{
k++;
s=s+A[i];
if (k==3)
{
cout<<"Sum of three special members is: \n"<<s;
getch();
return 0;
}
}
}
cout<<" That 3 numbers do not exist! \n";
return 0;
}
11. Поиск совпадений чисел в массиве
/* Даны целые числа а1,а2,...аn (в этой последовательности могут быть
повторяющиеся члены). Подсчитать, сколько чисел входит в последовательностьболее чем по одному разу. Выяснить, имеется ли в последовательности хотя бы одна пара совпадающих чисел */
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <conio.h>
#define SIZE 10
int main()
{
int i,j,n,A[SIZE],B[SIZE],s,item,index;
cout<<"Input n= ";
cin>>n;
cout<<"Enter array A: \n";
for(i=0;i<=n-1;i++)
{
cin>>A[i];
B[i]=0; // B – рабочий массив
}
/* В массиве В далее будет содержаться информация о том, сколько раз повторяется элемент с индексом i в массиве А */
for(i=0;i<=n-1;i++)
{
item=A[i];
index=i;
s=1;
for(j=0;j<n;j++) // цикл проверки повторов элемента item
{
if((A[j]==item)&&(j!=index))
{
s++;
B[i]=s;
}
}
}
cout<<" Array B[] members are: \n ";
for(i=0;i<n;i++) cout<<B[i];
for(i=0;i<n;i++)
{
if(B[i]!=0)
{
cout<< "\n There is a pair of concurrent numbers \n";
_getch();
return 0;
}
}
cout<< "There is not a pair of concurrent numbers \n";
_getch();
return 0;
}
12. Растяжение списка и вставка, удаление из списка и сжатие. Вариант 1.
/ Работа со спискомв виде массива c применением дополнительного массива В
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <conio.h>
#define SIZE 10
void main()
{
int A[SIZE],B[SIZE],i,n,k;
char ch;
bool pris=0; // признак необходимости действий с массивом
cout<<"Enter n\n";
cin>>n;
cout<<"Enter spisok\n";
for(i=0;i<=n-1;i++) cin>>A[i];
while(pris==0)
{
cout<<"Do you like to dell item? – Y | y \n";
cin>>ch;
if((ch=='Y')||(ch=='y'))
{
cout<<"Enter index \n"; // индекс удаляемого элемента
cin>>k;
for(i=0;i<k;i++) B[i]=A[i];
for(i=k;i<=n-2;i++) B[i]=A[i+1];
n--;
for(i=0;i<=n-1;i++) cout<<B[i];
for(i=0;i<=n-1;i++) A[i]=B[i]; // смена исходного А
}
cout<<"\n Do you like to put item? – Y | y \n";
cin>>ch;
if((ch=='Y')||(ch=='y'))
{
cout<<"Enter place for putting\n";
cin>>k;
for(i=0;i<k;i++) B[i]=A[i];
cout<<"Enter new item\n";
cin>>B[k];
n++;
for(i=k+1;i<=n-1;i++) B[i]=A[i-1];
for(i=0;i<=n-1;i++) cout<<B[i];
}
cout<<"\n Do you like to finish? – Y | y \n";
cin>>ch;
if((ch=='Y')||(ch=='y'))
{
for(i=0;i<=n-1;i++) cout<<B[i];
pris=1;
}
}
cout<<"\n Your work is finished!";
getch();
}