HDOJ——5170(GTY's math problem)
来源:互联网 发布:qs网络语是什么意思 编辑:程序博客网 时间:2024/05/22 10:49
问题描述
众所周知,GTY是一位神犇,为了更好的虐场,他从来不写数学作业而是去屠题,他的数学老师非常不爽,但由于GTY每次考试都AK,她也不能说什么,有一天老师在黑板上写了四个数——a,b,c,d 然后让GTY比较a 的b次和c的d次的大小,由于GTY不屑于虐这道题,就把这个问题交给你了。
输入描述
多组数据(约5000组),每组数据包含4个整数a,b,c,d, (1<=a,b,c,d<=1000);用空格隔开。
输出描述
对于每组数据,若a b >c d ,输出”>”, 若a b <c d ,输出”<”, 若a b =c d ,输出”=”
思路,想到直接for是不现实的,所以用log来进行取对数就可以了。
但是这里有一个精度问题,即使是double算出来的也只是估计值,所以再用if判断的时候不能写成0;
#include<stdio.h>#include<math.h>int main(){ int a,b,c,d; double t1=0,t2=0; while(scanf("%d %d %d %d",&a,&b,&c,&d)!=EOF){ t1=b*1.0*log10(a*1.0); t2=d*1.0*log10(c*1.0); if(fabs(t1-t2)<1e-12) printf("=\n"); else if(t1<t2) printf("<\n"); else printf(">\n"); }}
*这是关键——所以不能直接打==,而应该|两数之差|<某个值;
今天又在网上看到了,学到了哈哈
1. 浮点型比较大小可以直接用<, >,2. 比较相等或者不等不可以直接用==及!=。原因:用==从语法上说没错,但是本来应该相等的两个浮点数由于计算机内部表示的原因可能略有微小的误差,这时用==就会认为它们不等。应该使用两个浮点数之间的差异的绝对值小于某个可以接受的值来判断判断它们是否相等
0 0
- HDOJ——5170(GTY's math problem)
- 【BestCoder】 HDOJ 5170 GTY's math problem
- [HdOJ]5170 GTY's math problem
- hdu 5170 GTY's math problem(数学)
- HDU 5170 GTY's math problem
- HDU 5170 GTY's math problem
- HDU 5170 GTY's math problem
- GTY's math problem——大数幂比较(好伤心的精度。。。)
- HDU5170 GTY's math problem
- HDU5170 GTY's math problem
- BestCoder Round #29——A--GTY's math problem(快速幂(对数法))、B--GTY's birthday gift(矩阵快速幂)
- HDU 5170 GTY's math problem (bsst code #29 1001)
- hdu 5170 GTY's math problem --精度控制
- HDU 5170 GTY's math problem 精度判断问题
- hdu 5170 GTY's math problem【精度控制】【思维】
- GTY's math problem (BestCoder Round #29 A)
- BestCoder #29 GTY's math problem
- 【CUGBACM15级BC第29场 A】hdu 5170 GTY's math problem
- HDU5170 GTY's math problem
- 关于annotation的一些版本的支持问题。
- Linux Socket模型的幽默认识(转载的)
- 【SQL Server】--存储过程
- Maven学习笔记(八)Maven的入门使用—1.编写POM文件
- HDOJ——5170(GTY's math problem)
- 哲学家就餐-信号量
- 分享 如何做到基于NDK的Android应用防破解!
- 制作initramfs/initrd镜像
- Spring使用JTA进行分布式事务管理
- Hibernate中的懒加载原理分析
- 面试题
- 哲学家就餐-条件变量
- Uva-815 - Flooded!-AC