每日刷题———蓝桥杯真题|蓝桥杯2020第十一届C语言B组省赛习题题解——习题B.既约分数

每日刷题(九十五) 蓝桥杯第十一届C语言B组省赛习题B:既约分数(5’) 每日刷题———蓝桥杯真题|蓝桥杯2020第十一届C语言B组省赛习题题解——习题B.既约分数
文章图片

C++代码:

#include using namespace std; int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }int main() { int sum = 0; //分子分母相同的情况 sum = 1; int sum2 = 0; //分子小于分母的情况 for(int i = 1; i < 2020; i++) { for(int j = i + 1; j <= 2020; j++) { if(gcd(i, j) == 1) { sum2++; } } } sum += sum2 * 2; cout << sum << endl; return 0; }

【每日刷题———蓝桥杯真题|蓝桥杯2020第十一届C语言B组省赛习题题解——习题B.既约分数】运行结果:
每日刷题———蓝桥杯真题|蓝桥杯2020第十一届C语言B组省赛习题题解——习题B.既约分数
文章图片

所以答案是:
2481215
注意!有些人会把分母和分子相同的算成不同的,比方说1/1,2/2,3/3,…,2020/2020,认为结果为1的既约分数有2020个,所以答案和标准答案不同。要知道既然题目说了它是分数,那么最多就考虑进1次为1的可能性!
如果喜欢我的文章,请记得三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持,下期更精彩!!!

    推荐阅读