第十一届蓝桥杯 2020 C/C++组 既约分数
目录
题目:
题目描述:
题目链接:
思路:
核心思路:
思路详解:
代码:
代码详解:
题目:
题目描述:
题目链接:
既约分数 - 蓝桥云课
思路:
核心思路:
__gcd()最大公约数函数
思路详解:
题目条件很明确,一个分数的分子和分母的最大公约数是1。所以只要知道最大公约数函数就很好做了,最大公约数函数的格式是__gcd(),gcd前面是两个下划线。因为是填空题,而且数据范围最大到2020,两个for循环一个遍历分子,一个遍历分母时间复杂度也完全在可行范围内。
这题一开始我还想多了一点,想着如果能约分的话就不是分数了,还多加了个如果fenzi%fenmu==0就跳过继续的判断,到提交结果发现答案错了才发现。仔细看题7/1也是既约分数,只能怪自己不仔细看题还多想了
代码:
代码详解:
#include<bits/stdc++.h> //填空题,答案是2481215,一开始想多了反而还写错了
using namespace std; //我看到是分数还加了个if(fenzi%fenmu==0) continue;的判断,输出结果为2479195 int main()
{int ans=0;for(int fenzi=1;fenzi<=2020;fenzi++){for(int fenmu=1;fenmu<=2020;fenmu++){
// if(fenzi%fenmu==0) 后面发现题目举的例子7/1也是既约分数,单纯自己没看题想多了
// {
// continue;
// }if(__gcd(fenzi,fenmu)==1){ans++;}}}cout<<ans<<endl;return 0;
}