杭电OJ 1111(C++)
程序员文章站
2022-07-13 17:37:48
...
#include <iostream>
using namespace std;
int xr, xi, br, bi, con;
int flag, t;
int a[105];
void dfs(int n)
{
int x, y, i;
if (n > 100) //剪枝
return;
if (xr == 0 && xi == 0) //剪枝
{
flag = 1;
t = n;
return;
}
for (i = 0; i * i < con; i++)
{
a[n] = i;
x = (xr - i) * br + xi * bi;
y = xi * br - (xr - i) * bi;
if (x % con == 0 && y % con == 0) //保证整除
{
xr = x / con;
xi = y / con;
dfs(n + 1);
}
if (flag == 1)
return;
}
}
int main()
{
int T;
cin >> T;
while (T--)
{
cin >> xr >> xi >> br >> bi;
con = br * br + bi * bi;
flag = 0;
dfs(0);
if (!flag)
cout << "The code cannot be decrypted." << endl;
else
{
cout << a[t - 1];
for (int i = t - 2; i >= 0; i--)
cout << ',' << a[i];
cout << endl;
}
}
return 0;
}
上一篇: github 创建仓库并上传本地仓库
下一篇: 创建github仓库与本地仓库绑定