problemscpp
A collection of my answers to algorithm problems in c++.
函数
pat::b::b1062 命名空间参考

1062 最简分数 更多...

函数

int main (istream &cin, ostream &cout)
 
 TEST (b1062, case1)
 
 TEST (b1062, case2)
 

详细描述

1062 最简分数

函数说明

◆ main()

int pat::b::b1062::main ( istream &  cin,
ostream &  cout 
)

在文件 pat.cpp2166 行定义.

2166 {
2167 char ch;
2168 double n1;
2169 double n2;
2170 int m1;
2171 int m2;
2172 int k;
2173 cin >> n1 >> ch >> m1 >> n2 >> ch >> m2 >> k;
2174 n1 *= k;
2175 n1 /= m1;
2176 n2 *= k;
2177 n2 /= m2;
2178 if(n1 > n2) {
2179 swap(n1, n2);
2180 }
2181 bool flag = true;
2182 for(int i = ceil(n1) == n1 ? n1 + 1 : ceil(n1); i < n2; i++) {
2183 const int f = gcd(i, k);
2184 if(f == 1) {
2185 if(flag) {
2186 cout << i / f << '/' << k;
2187 flag = false;
2188 } else {
2189 cout << ' ' << i / f << '/' << k;
2190 }
2191 }
2192 }
2193 return 0;
2194 }

被这些函数引用 TEST().

◆ TEST() [1/2]

pat::b::b1062::TEST ( b1062  ,
case1   
)

在文件 pat_test.cpp960 行定义.

960 {
961 istringstream in("7/18 13/20 12");
962 auto out = ostringstream();
963 main(in, out);
964 const auto ans = out.str();
965 ASSERT_EQ("5/12 7/12", out.str());
966 }
int main(int argc, char **argv)
Definition: main.cpp:5

引用了 main().

◆ TEST() [2/2]

pat::b::b1062::TEST ( b1062  ,
case2   
)

在文件 pat_test.cpp968 行定义.

968 {
969 istringstream in("26/5 7/20 13");
970 auto out = ostringstream();
971 main(in, out);
972 const auto ans = out.str();
973 ASSERT_EQ("5/13 6/13 7/13 8/13 9/13 10/13 11/13 12/13 14/13 15/13 16/13 17/13 18/13 19/13 20/13 21/13 22/13 23/13 24/13 25/13 27/13 28/13 29/13 30/13 31/13 32/13 33/13 34/13 35/13 36/13 37/13 38/13 40/13 41/13 42/13 43/13 44/13 45/13 46/13 47/13 48/13 49/13 50/13 51/13 53/13 54/13 55/13 56/13 57/13 58/13 59/13 60/13 61/13 62/13 63/13 64/13 66/13 67/13", out.str());
974 }

引用了 main().