Составить алгоритм и написать программу с использованием визуальных компонентов в среде разработки Visual C# в соответствии с индивидуальным заданием. Программа должна быть написана таким образом, что в поля редактирования пользователь может вводить только правильные данные – дробные числа или целые числа (в зависимости от задания). Написать программу возведения в квадрат комплексного числа в алгебраической форме.
Надеюсь сравнение так надо писать
Объяснение:
#include <bits/stdc++.h>
using namespace std;
long long n, m, a, b;
void squares(long long n, long long m){
while(n){
a += pow(n % 10, 2);
n /= 10;
}
while(m){
b += pow(m % 10, 2);
m /= 10;
}
cout << a << ' ' << b << '\n';
if (a > b){
cout << a << " > " << b;
}
else if (a < b){
cout << a << " < " << b;
}
else{
cout << a << " = " << b;
}
}
int main() {
cin >> n >> m;
squares(n, m);
return 0;
}
Код в приложении.
Пояснения:
Посмотрим, как же нам решить задачу. Сначала, поймём как обнулить бит. Бит можно обнулить если использовать логическое И с нулём. Значит, нам нужно использовать логическое И на нужном бите. Как же это сделать? В С++ есть побитовые операции между двумя числами, но побитовое И (&) применяется между всеми битами двух чисел, т.е.
Заметим, что
Числа в С++ с фиксированной разрядностью, т.е. битов всегда определённое кол-во. Исходя из условий задачи, тут нужен int - 32-битный тип.
Тогда, чтобы обнулить нужный бит, нам нужно использовать побитовое И с таким числом, что все его биты, кроме нужного, равны 1.
Добиться этого мы сможем следующим образом. Сдвинем 1 влево на k бит и получим такое число, что все биты, кроме k-го равны 0, а k-ый равен 1, и используем побитовую инверсию (~), т.е. инвертируем каждый бит в числе.
Получив нужное число, выполняем побитовое И и обнуляем k-ый бит.
Как работают примеры:
И второй пример: