1062. 最简分数(20)
2017-10-15 23:33
447 查看
这是一道不错的题目。
考到了分数化简的求最大公因数算法。
再次记忆:
int gcd(int a, int b) { //自己未曾接触过的求两个数最大公因数的算法
return b == 0 ? a : gcd(b, a%b);
}
考到了分数化简的求最大公因数算法。
再次记忆:
int gcd(int a, int b) { //自己未曾接触过的求两个数最大公因数的算法
return b == 0 ? a : gcd(b, a%b);
}
// 2017/10/14 NCU // PAT-B 1065 // scienceZ #include <cstdio> #include <cstring> #include <iostream> #include <sstream> #include <algorithm> using namespace std; int n, a1, a2, b1, b2; double a, b; char arr[100]; bool key = true; int gcd(int a, int b) { //自己未曾接触过的求两个数最大公因数的算法 return b == 0 ? a : gcd(b, a%b); } int main() { gets(arr); int l = strlen(arr); for(int i = 0; i<l; i++){ if(arr[i] == '/') arr[i] = ' '; } stringstream ss(arr); ss >> a1 >> a2 >> b1 >> b2 >> n; a = double(a1)/a2; b = double(b1)/b2; if (a > b){ double t; t = a; a = b; b = t; } for (int i = 1; ;i++){ double c = double(i)/n; if(c>a && c<b && gcd(i, n) == 1) if (key) {printf("%d/%d", i, n); key = false;} else printf(" %d/%d", i, n); if(c>b) break; } return 0; }
相关文章推荐
- 1062. 最简分数(20) PAT乙级
- 1062. 最简分数(20)
- 1062. 最简分数(20)
- 1062. 最简分数(20)-PAT乙级真题
- PAT乙级真题1062最简分数(20)
- 乙级 PAT 1062. 最简分数(20)
- PAT 1062. 最简分数(20)
- 1062. 最简分数(20)
- 1062. 最简分数(20)
- 1062. 最简分数(20)
- 1062. 最简分数(20)
- 1062. 最简分数(20)
- 1062. 最简分数(20) PAT
- 1062. 最简分数(20)
- PAT Basic 1062. 最简分数(20)(C语言实现)
- 1062. 最简分数(20)
- PAT乙级-1062. 最简分数(20)
- 1062. 最简分数(20)
- 1062. 最简分数(20)
- 1062. 最简分数(20)