for (int k = 0; k < n; ++k)
for (int k = 0; k < n; k++)
/*----------------------------------------------------------Задание----------------------------------------------------------------
Array49. Дан целочисленный массив размера N. Если он является перестановкой,
т. е. содержит все числа от 1 до N, то вывести 0;
в противном случае вывести номер первого недопустимого элемента.
Гусятинер Л.Б. && Маслаков А.Ю., КККМТ
-----------------------------------------------------------------------------------------------------------------------------------*/
#include <vector>
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
system ("chcp 1251>nul");
int n;
cout<<"введите размерность массива - ";
cin>>n;
vector<int> v1;
for (vector<int>::size_type i=0; i!=n ;i++)
{
int y;
cin >> y;
v1.push_back(y);
}
bool x=true;
vector<int> v2(n,1);
vector<int>::size_type k=0;
for (vector<int>::size_type i=0; i!=n && x==true; i++)
{
if (v1[i]-1>=n || v2[v1[i]-1]==0)
{
k=i;
x=false;
}
else
v2[v1[i]-1]=0;
}
if (x==true)
cout<<0<<endl;
else
cout<<k+1<<endl;
return 0;
}
{
x=false;
l=k;
}
v1.push_back(y);
}
k=0;
while( k<n && x )
{
++l%= n;
x = v1[k]!=v1[l] || k==l;
if( l==0 )
{
l=++k;
}
}
// Array49. Оптимальное количество итераций
#include <algorithm>
#include <iostream>
#include <sstream>
#include <vector>
using namespace std;
int main()
{
vector<int> v;
string input;
getline(cin, input);
copy(istream_iterator<int>(istringstream(input)), istream_iterator<int>(), back_inserter(v));
vector<int> c(v.size(), 0);
int result = 0;
for (int k = 0; k < v.size(); ++k)
{
if (v[k] < 1 || v[k] > v.size() || c[v[k] - 1] > 0)
{
result = k + 1;
break;
}
++c[v[k] - 1];
}
cout << result << endl;
return 0;
}
// Array49. Оптимальное использование памяти
#include <algorithm>
#include <iostream>
#include <sstream>
#include <vector>
using namespace std;
int main()
{
vector<int> v;
string input;
getline(cin, input);
copy(istream_iterator<int>(istringstream(input)), istream_iterator<int>(), back_inserter(v));
int result = 0;
for (int k = 0; k < v.size() && result == 0; ++k)
{
if (v[k] < 1 || v[k] > v.size())
{
result = k + 1;
break;
}
for (int j = 0; j < k; ++j)
{
if (v[j] == v[k])
{
result = k + 1;
break;
}
}
}
cout << result << endl;
return 0;
}
for (k=0; k<n ;k++)
{
cin >> y;
if(y<=0 || y>n)//проверка условия числа от 1 до N
{
x=false;//сбрасываем флаг ошибки
l=k;//запоминаем индекс
}
v1.push_back(y);
}
k=0;//сбрасываем индекс
while( k<n && x )//два условия: первое - индекс внешнего цикла, второе флаг ошибки
{
++l%= n;//эта команда при любом приращении индекса внутренео цикла присваивает ему значение 0..N-1
x = v1[k]!=v1[l] || k==l;//проверка на совпадение элементов с исключением проверки с одинаковым индексом
if( l==0 )//индекс внутреннего цикла достиг конца массива(см. выше)
{
l=++k;//увеличиваем индекс внешнего цикла
}
}
#include <vector>
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
unsigned n,m;
cout<<"enter size:";
cin>>n;
vector<int> v1;
vector<int>::size_type k,l;
int y;
bool x=true;
for (k=0; k<n ;k++)
{
cin >> y;
if(y<=0 || y>n)//
{
x=false;//
m=k;//
}
v1.push_back(y);
if( x )
{
m=l=k;
while(l>0 && x)
{
x=v1[--l]!=v1[k];
cout <<v1[l]<<" vs "<<v1[k]<<" - "<<l<<":"<<k<<endl;
}
}
}
if ( x )
cout<<0<<endl;
else
cout<<m+1 <<":=" <<v1[m] << endl;
return 0;
}
#include <vector>
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
unsigned n;
cout<<"enter size:";
cin>>n;
vector<int> v1;
vector<int>::size_type k,l;
int y;
bool x=true;
for (k=0; k<n ;k++)
{
cin >> y;
v1.push_back(y);
if( x )
{
x=(y>0 && y<=n);
l=k;
while(l>0 && x)
x=v1[--l]!=v1[k];
l=k;
}
}
if ( x )
cout<<0<<endl;
else
cout<<l+1 <<":=" <<v1[l] << endl;
return 0;
}
/**------------------Задание-----------------
* Array6.
* Даны целые числа N (> 2), A и B.
* Сформировать и вывести целочисленный массив размера N,
* первый элемент которого равен A, второй равен B,
* а каждый последующий элемент равен сумме всех предыдущих.
*-------------------------------------------
*/
#include <iostream>
#include <cstdlib>
#include <vector>
using namespace std;
int main()
{
int n,sum,a,b;
system ("chcp 1251 > nul");
cout << "Введите размер массива N- ";
cin >> n;
vector<int> v(n);
cout << "Введите первый элемент - ";
cin >> a;
cout << "Введите второй элемент - ";
cin >> b;
v[0] = a;
v[1] = b;
sum = 0;
sum += v[0] + v[1];
for (vector<int>::size_type i=2;i<n;++i)
{
v[i] = sum;
sum += v[i];
}
for (vector<int>::size_type i=0;i<v.size();++i)
cout << v[i] << ' ';
return 0;
}
/**------------------Задание-----------------
* Array6.
* Даны целые числа N (> 2), A и B.
* Сформировать и вывести целочисленный массив размера N,
* первый элемент которого равен A, второй равен B,
* а каждый последующий элемент равен сумме всех предыдущих.
*-------------------------------------------
*/
#include <iostream>
#include <cstdlib>
#include <vector>
using namespace std;
int main()
{
size_t n;
int sum, a, b;
system ("chcp 1251 > nul");
cout << "Введите размер массива N- ";
cin >> n;
vector<int> v(n);
cout << "Введите первый элемент - ";
cin >> a;
cout << "Введите второй элемент - ";
cin >> b;
v[0] = a;
v[1] = b;
sum = v[0] + v[1];
for (vector<int>::size_type i=2;i<n;++i)
{
v[i] = sum;
sum += v[i];
}
for (vector<int>::size_type i=0;i<v.size();++i)
cout << v[i] << ' ';
return 0;
}
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.