项目场景:
P1888 三角函数
题目描述
输入一组勾股数 a,b,c(a\neq b\neq c)a,b,c(a=b=c),用分数格式输出其较小锐角的正弦值。(要求约分。)
输入格式
一行,包含三个正整数,即勾股数 a,b,ca,b,c(无大小顺序)。
输出格式
一行,包含一个分数,即较小锐角的正弦值
输入输出样例
输入 #1复制
3 5 4
输出 #1复制
3/5
说明/提示
数据保证:a,b,ca,b,c 为正整数且 \in [1,10^9]∈[1,109]。
问题描述:
#include<stdio.h>
int main()
{
int z,t,a,b,c;
scanf("%n%n%n",&a,&b,&c);
if(a>b&&a>c)
{
t=a;
}
else
if(b>a&&b>c)
{
t=b;
}
else
t=c;
if(a<b&&a<c)
{
z=a;
}
else
if(b<a&&b<c)
{
z=b;
}
else
z=c;
printf("%d/%d\n",z,t);
return 0;
}
原因分析:
提示:这里填写问题的分析:
例如:Handler 发送消息有两种方式,分别是 Handler.obtainMessage()和 Handler.sendMessage(),其中 obtainMessage 方式当数据量过大时,由于 MessageQuene 大小也有限,所以当 message 处理不及时时,会造成先传的数据被覆盖,进而导致数据丢失。
解决方案:
#include <stdio.h>
#include <algorithm>
using namespace std;
inline int gcd(int a,int b)
{
return b==0?a:gcd(b,a%b);
}
int main()
{
int a[3],i,max=-99999,min=99999;
scanf("%d %d %d",&a[0],&a[1],&a[2]);
sort(a,a+3);
int n=gcd(a[0],a[2]);//用n储存
a[0]/=n;
a[2]/=n;
printf("%d/%d",a[0],a[2]);
}
# include <stdio.h>
short main()
{
long a,b,c,max,min,factor;
scanf("%ld%ld%ld",&a,&b,&c); //输入三个正整数a、b、c
min=a<b?a<c?a:c:b<c?b:c; //三个数中的最小数为min
max=c>b?c>a?c:a:b>a?b:a; //三个数中的最大数为max
for(factor=min;max%factor || min%factor;--factor); //min和max的最大公约数为factor
return !printf("%d/%d\n",min/factor,max/factor); //输出min和max的最简比值min/max