给定 a,b 求出 f(x)=ax+b 所有的不动点。
我的思路:
#include<bits/stdc++.h>
using namespace std;
#define M 200010
#define int long long
#define INF 0x3f3f3f3f
#define LINF 0x3f3f3f3f3f3f3f3f
#define fr(i,j,k) for(int i=j;i<=k;++i)
#define rs(i,j,k) for(int i=j;i>=k;--i)
#define endl '\n'
#define IOS ios::sync_with_stdio(0)
#define pb(i) push_back(i)
#define pf(i) push_front(i)
#define mem(a,b) memset(a,b,sizeof a)
int find_gen(int a, int b, int c) {
if (b * b - 4 * a * c == 0) return 1;
else if (b * b - 4 * a * c > 0) return 2;
else return 0;
}
signed main() {
IOS;
int t;
cin >> t;
while (t --) {
int A, B;
cin >> A >> B;
int a = 1, b = -(2 * B + A), c = B * B;
int det = (b * b) - (4 * a * c);
int ans = 0;
double x1 = (-b + sqrt(det)) / (2 * a);
double x2 = (-b - sqrt(det)) / (2 * a);
if(x1 > x2) swap(x1,x2);
if(x1 > b) ans ++;
if(x2 > b && x2 != x1) ans ++;
cout << ans << endl;
if(x1 > b){
cout << x1 << ' ';
}
if(x2 > b && x1 != x2){
cout << x2 << endl;
}
}
return 0;
}