ответ: Только не точь в точь, а то за это бан)
#include <iostream>
#include <vector>
#include <cstdint>
using namespace std; template <class T>
istream& operator>>(istream &in, vector<T> &vec) { for (auto &it : vec) in >> it; return in;
}
template <class T>
ostream& operator<<(ostream &out, vector<T> &vec) { for (auto &it : vec) out << it << ' '; return out;
template <class T, class U>
istream& operator>>(istream &in, pair<T, U> &pair){
in >> pair.first >> pair.second; return in;
ostream& operator<<(ostream &out, pair<T, U> &pair) { out << pair.first << ' ' << pair.second; return out;
signed main(void) { int32_t n; cin >> n; vector<vector<int64_t>> a(n, vector<int64_t>(n,-1));
int64_t x = 0, y = n/2;
a[x][y] = 1;
for(int32_t i = 2; i <= n*n; ++i) {
int _x = x, _y = y;
if(!x) {
x = n-1;
}else {
x-=1;
if(y == n-1){
y = 0;
y++;
if(a[x][y] != -1){
x= _x, y = _y;
while(a[x][y] != -1){
if(x == n-1){
x = 0;
}else{
x++;
a[x][y] = i;
for(int32_t i = 0; i < n; ++i){
cout << a[i] << '\n';
return 0;
У вас есть 4-ая? Я щас создам вопрос!
Если , оцени)
#include <string>
#include <conio.h>
#include <stdlib.h>
#include <sstream>
#include <fstream>
using namespace std;
int main()
{
int k; //Переменная выбора - шифрование/дешифрование
int shift; //Величина сдвига
string result = ""; //Строка - результат
cout<<"Enter 1 for encryption and decryption of 2\n";
cin>>k;
switch (k) //Если k
case 1: //Если выбрано шифрование
cout<<"Enter value shift for encryption\n";
cin>>shift;
if (shift > 26)
shift = shift % 26; //Вычисление сдвига
cout<<"Read of file...\n";
setlocale(LC_ALL,"Russian");//Чтение файла
string s; //Строка считанная из файла
ifstream in("Test.txt");
getline(in,s);
cout<<"Text of file: \n"<<s<<endl;
in.close();
cout<<"Reading complete!\n";
cout<<"Encryption...\n";
for (int i = 0; i < s.length(); i++)
//Если не латиница
if (((int)(s[i]) < 65)||((int)(s[i]) > 122))
result += s[i];
//Если буква является строчной
if (((int)(s[i]) >= 97) && ((int)(s[i]) <= 122))
//Если буква, после сдвига выходит за пределы алфавита
if ((int)(s[i]) + shift > 122)
//Добавление в строку результатов символ
result += (char)((int)(s[i]) + shift - 26);
//Если буква может быть сдвинута в пределах алфавита
else
result += (char)((int)(s[i]) + shift);
//Если буква является прописной
if (((int)(s[i]) >= 65) && ((int)(s[i]) <= 90))
if ((int)(s[i]) + shift > 90)
cout<<"Encryption complete!\n";
cout<<"Result:\n";
cout<<result; //Вывод результата
break;
case 2: //Если выбрано дешифрование
cout<<"Enter value shift for decryption\n";
shift = shift % 26;
setlocale(LC_ALL,"Russian");
string s;
cout<<"Decryption...\n";
if ((int)(s[i]) - shift < 97)
result += (char)((int)(s[i]) - shift + 26);
result += (char)((int)(s[i]) - shift);
if ((int)(s[i]) - shift < 65)
cout<<"Decryption complete!\n";
default: //Если ошибочное значение
cout<<"Error value\n";
getch();
0
ответ: Только не точь в точь, а то за это бан)
#include <iostream>
#include <vector>
#include <cstdint>
using namespace std; template <class T>
istream& operator>>(istream &in, vector<T> &vec) { for (auto &it : vec) in >> it; return in;
}
template <class T>
ostream& operator<<(ostream &out, vector<T> &vec) { for (auto &it : vec) out << it << ' '; return out;
}
template <class T, class U>
istream& operator>>(istream &in, pair<T, U> &pair){
in >> pair.first >> pair.second; return in;
}
template <class T, class U>
ostream& operator<<(ostream &out, pair<T, U> &pair) { out << pair.first << ' ' << pair.second; return out;
}
signed main(void) { int32_t n; cin >> n; vector<vector<int64_t>> a(n, vector<int64_t>(n,-1));
int64_t x = 0, y = n/2;
a[x][y] = 1;
for(int32_t i = 2; i <= n*n; ++i) {
int _x = x, _y = y;
if(!x) {
x = n-1;
}else {
x-=1;
}
if(y == n-1){
y = 0;
}else {
y++;
}
if(a[x][y] != -1){
x= _x, y = _y;
while(a[x][y] != -1){
if(x == n-1){
x = 0;
}else{
x++;
}
}
}
a[x][y] = i;
}
for(int32_t i = 0; i < n; ++i){
cout << a[i] << '\n';
}
return 0;
}
У вас есть 4-ая? Я щас создам вопрос!
Если , оцени)
#include <iostream>
#include <string>
#include <conio.h>
#include <stdlib.h>
#include <sstream>
#include <fstream>
using namespace std;
int main()
{
int k; //Переменная выбора - шифрование/дешифрование
int shift; //Величина сдвига
string result = ""; //Строка - результат
cout<<"Enter 1 for encryption and decryption of 2\n";
cin>>k;
switch (k) //Если k
{
case 1: //Если выбрано шифрование
{
cout<<"Enter value shift for encryption\n";
cin>>shift;
if (shift > 26)
shift = shift % 26; //Вычисление сдвига
cout<<"Read of file...\n";
setlocale(LC_ALL,"Russian");//Чтение файла
string s; //Строка считанная из файла
ifstream in("Test.txt");
getline(in,s);
cout<<"Text of file: \n"<<s<<endl;
in.close();
cout<<"Reading complete!\n";
cout<<"Encryption...\n";
for (int i = 0; i < s.length(); i++)
{
//Если не латиница
if (((int)(s[i]) < 65)||((int)(s[i]) > 122))
result += s[i];
//Если буква является строчной
if (((int)(s[i]) >= 97) && ((int)(s[i]) <= 122))
{
//Если буква, после сдвига выходит за пределы алфавита
if ((int)(s[i]) + shift > 122)
//Добавление в строку результатов символ
result += (char)((int)(s[i]) + shift - 26);
//Если буква может быть сдвинута в пределах алфавита
else
//Добавление в строку результатов символ
result += (char)((int)(s[i]) + shift);
}
//Если буква является прописной
if (((int)(s[i]) >= 65) && ((int)(s[i]) <= 90))
{
//Если буква, после сдвига выходит за пределы алфавита
if ((int)(s[i]) + shift > 90)
//Добавление в строку результатов символ
result += (char)((int)(s[i]) + shift - 26);
//Если буква может быть сдвинута в пределах алфавита
else
//Добавление в строку результатов символ
result += (char)((int)(s[i]) + shift);
}
}
cout<<"Encryption complete!\n";
cout<<"Result:\n";
cout<<result; //Вывод результата
break;
}
case 2: //Если выбрано дешифрование
{
cout<<"Enter value shift for decryption\n";
cin>>shift;
if (shift > 26)
shift = shift % 26;
cout<<"Read of file...\n";
setlocale(LC_ALL,"Russian");
string s;
ifstream in("Test.txt");
getline(in,s);
cout<<"Text of file: \n"<<s<<endl;
in.close();
cout<<"Reading complete!\n";
cout<<"Decryption...\n";
for (int i = 0; i < s.length(); i++)
{
//Если не латиница
if (((int)(s[i]) < 65)||((int)(s[i]) > 122))
result += s[i];
//Если буква является строчной
if (((int)(s[i]) >= 97) && ((int)(s[i]) <= 122))
{
//Если буква, после сдвига выходит за пределы алфавита
if ((int)(s[i]) - shift < 97)
//Добавление в строку результатов символ
result += (char)((int)(s[i]) - shift + 26);
//Если буква может быть сдвинута в пределах алфавита
else
//Добавление в строку результатов символ
result += (char)((int)(s[i]) - shift);
}
//Если буква является прописной
if (((int)(s[i]) >= 65) && ((int)(s[i]) <= 90))
{
//Если буква, после сдвига выходит за пределы алфавита
if ((int)(s[i]) - shift < 65)
//Добавление в строку результатов символ
result += (char)((int)(s[i]) - shift + 26);
//Если буква может быть сдвинута в пределах алфавита
else
//Добавление в строку результатов символ
result += (char)((int)(s[i]) - shift);
}
}
cout<<"Decryption complete!\n";
cout<<"Result:\n";
cout<<result; //Вывод результата
break;
}
default: //Если ошибочное значение
{
cout<<"Error value\n";
break;
}
}
getch();
return 0;
}
0