C++暴力约分(gcd).


举个例子,洛谷1888题。

题目如下

题目描述

输入一组勾股数a,b,c(a≠b≠c),用分数格式输出其较小锐角的正弦值。(要求约分。)

输入格式:

一行,包含三个数,即勾股数a,b,c(无大小顺序)。

输出格式:

一行,包含一个数,即较小锐角的正弦值

 

输入输出样例

输入样例#1: 复制
3 5 4
输出样例#1: 复制
3/5
解题思路:因为要求为正弦值,所以只要得到勾股数里最小和最大的值在相除约分即可。
代码如下

#include <iostream>
#include <algorithm> //头文件不用说。
using namespace std;
int gcd(int a,int b)
{
     return !b?a:gcd(b,a%b);//本题最为核心的地方,暴力约分
}
int main()
{
    int a[3],i;
    cin>>a[0]>>a[1]>>a[2];
    sort(a,a+3);//sort排序(从小到达)注意sort只能排数组。
    cout<<a[0]/gcd(a[0],a[2])<<'/'<<a[2]/gcd(a[0],a[2]);//约分格式并输出。
    return 0;
}

蒟蒻的第一次博客,还请大佬请教。 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM