description
問題:兩個不同分子分母都大於0的分數a和b之間應該一定有乙個分數c滿足a < c < b;
但他沒有乙個確切的方法來尋找這個分數,於是他來求助於你。
input
首先輸入一行乙個整數t代表樣例數。(1≤t≤30000)
對於每一組樣例,一行輸入四個整數 1 <= a1,a2,b1,b2 <= 1000000000,資料保證aoutput
對於每一組樣例,輸出一行兩個數c1,c2,表示c的分子與分母。用空格將兩個數分開。
若有多解,輸出c1最小的解,若最小c1仍有多解,輸出c2最小的解;
sample input
31 4 1 3
2 3 7 9
1 1 2 1
sample output
2 73 4
3 2原理什麼的我也不懂,先記著再說吧……
#include #include #include #include using namespace std;
typedef long long ll;
typedef long double ld;
paireuclidean(paira, pairb) ;
if (b.first == 0) b = ;
if (a.first < a.second && b.first > b.second) return ;
if (a.first >= a.second) , );
p.first += p.second * d;
return p;
} auto p = euclidean(, );
return ;
}int main()
}
求兩個整型數的中間值
已知有兩個整型變數int a和int b,求這兩個數的中間值,即int c c a b 2 你能想出上述操作可能會存在的問題嗎?答案是,加法過程中可能會溢位。因此,我們可以這麼做 c a 2 b 2 雖然解決了溢位的問題,但仍然還有缺點,你能想到是什麼嗎?答案是,用了兩次除法,執行效率會顯著降低,因...
求三個數的最大 最小 中間值
求三個數的最大 最小 中間值 int a 3,b 5 int min a b a b printf min d n min int a 3,b 4 c 8 int min a b a b min min c min c int max a b?a b max max c max c printf m...
輸入3個數,求最大值最小值中間值
輸入3個數,求最大值最小值中間值 2 bool 如果為真,則返回1,如果為假則返回0 3 邏輯與 要求表示式兩邊同時為真,結果才為真,如果表示式兩邊有乙個為假,結果就為假。邏輯或 一真即真 4if 第一種形式,如果條件表示式為真,會執行大括號裡的語句,執行完畢後跳出大括號執行下面的語句 如果為假,跳...