program z1;
ar x,y:integer;
begin
readln(x);
readln(y);
if (x=0) and (y=0) then write(0)
else
begin
if (x>=0) and (y>=0) then write(1);
if (x<=0) and (y>=0) then write(2);
if (x<=0) and (y<=0) then write(3);
if (x>=0) and (y<=0) then write(4)
end
end.
Объяснение:
Если точка лежит в начале координат, т.е. х = 0 и у = 0, то выводим 0, иначе выводим какой четверти принадлежит точка, начиная с 1 четверти и по порядку.
Нестрогие условия (>= и <=) и оператор write (нет перехода на новую строку) позволяют выводить два номера четверти, если точка лежит на одной из осей, а расположение условий для четвертей по порядку позволяет соблюсти условие о том, что сначала необходимо выводить меньший номер.
#include <iostream>
#include <string>
#define N 5
using namespace std;
int count_flat = 0;
struct Flat {
int n_rooms;
int square;
int floor;
string address;
double price;
void PrintInfo() {
cout << "\nКоличество комнат: " << n_rooms << "\nПлощадь " << square << "\nЭтаж:" << floor << "\nАдрес " << address << "\nЦена: " << price;
}
void InputInfo() {
cout << "Количество комнат: ";
cin >> n_rooms;
cout << "Площадь: ";
cin >> square;
cout << "Этаж: ";
cin >> floor;
cout << "Адрес: ";
getline(cin, address);
cout << "Цена: ";
cin >> price;
}
void PrintChecksInfo(int number) {
if (number >= price) {
count_flat++;
PrintInfo();
}
}
};
signed main() {
setlocale(LC_ALL, "Rus");
int choice;
Flat mas[N];
for (int i = 0; i < N; i++)
mas[i].InputInfo();
cout << "Введите стоимость: ";
cin >> choice;
for (int i = 0; i < N; i++) {
mas[i].PrintChecksInfo(choice);
}
if (count_flat <= 0)
cout << "Таких квартир нет!";
return 0;
}
1010111101
1101 - D
1011 - B
10 - 2
ответ: 2BD
Из двоичной в восьмеричную:
1010111101
101 - 5
111 - 7
010 - 2
1 - 1
ответ: 1275