From 9442e498db70555de1e6f1be1899f976cbc55459 Mon Sep 17 00:00:00 2001 From: zhangzc Date: Fri, 15 Oct 2021 18:31:10 +0800 Subject: [PATCH] update algorithm exercises --- .../desc.md" | 10 +++++ .../solution.cpp" | 37 +++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\250\215\345\260\217\345\210\206\346\225\260/desc.md" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\250\215\345\260\217\345\210\206\346\225\260/desc.md" index e69de29bb..d844b9fbc 100644 --- "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\250\215\345\260\217\345\210\206\346\225\260/desc.md" +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\250\215\345\260\217\345\210\206\346\225\260/desc.md" @@ -0,0 +1,10 @@ +回到小学 + +真分数:分子小于分母的分数 + +既约分数:分子分母互质,也就是说最大公约数是1 + +x星球数学城的入口验证方式是: + +屏幕上显示一个真分数,需要你快速地找到一个比它小的既约分数,要求这个分数越大越好。 +同时限定你的这个分数的分母不能超过100。 \ No newline at end of file diff --git "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\250\215\345\260\217\345\210\206\346\225\260/solution.cpp" "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\250\215\345\260\217\345\210\206\346\225\260/solution.cpp" index e69de29bb..3b950906d 100644 --- "a/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\250\215\345\260\217\345\210\206\346\225\260/solution.cpp" +++ "b/data/1.\347\256\227\346\263\225\345\210\235\351\230\266/1.\350\223\235\346\241\245\346\235\257/\347\250\215\345\260\217\345\210\206\346\225\260/solution.cpp" @@ -0,0 +1,37 @@ +#include + +int gcd(int a, int b) +{ + if (b == 0) + return a; + return gcd(b, a % b); +} +int main() +{ + // 这是屏幕上显示的那个分数 a/b + int a = 7; + int b = 13; + + int m, n; + int max_a = 0; + int max_b = 1; + + for (n = 100; n > 1; n--) + { + for (m = n - 1; m >= 1; m--) + { + if (m * b < a * n && gcd(m, n) == 1) + { + if (m * max_b > n * max_a) + { + max_a = m; + max_b = n; + break; + } + } + } + } + + printf("%d/%d\n", max_a, max_b); + return 0; +} -- GitLab