【題解】Zerojudge a647 - 投資專家

AC (2ms, 132KB)
誤差值處理:
最後的keep和dispose是取決於四捨五入的結果。輸出前半段的浮點數是四捨五入的結果。

如果%>=0則+0.0000001,<0則-0.0000001,可以除去誤差,使得 9.999999999 進位變成 10
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(void) {
	int num;
	scanf("%d", &num);
	for(int i=0, a, b;i<num;i++) {
		scanf("%d %d", &a, &b);
		double f=((double)b/(double)a-1)*100*100;
		if(f>=0) {
			f+=0.0000001;
		} else {
			f-=0.0000001;
		}
		double res=f/100;
		f=round(f);
		f/=100;
		if(f==-0.00) {
			f=0;
		}
		printf("%.2f%% ", f);
		if(res>=10.00||res<=-7.00) {
			printf("dispose\n");
		} else {
			printf("keep\n");
		}
	}
	
	return 0;
}

如果本文對您有幫助的話幫忙點擊廣告和分享吧!

© 若無特別註明,本站文章皆由 WeakMouse's Coding Blog 原創 ,轉載引用本文前請先留言告知。本文轉載請註明文章源自 WeakMouse's Coding Blog ,作者 ,並附上原文連結: 【題解】Zerojudge a647 - 投資專家

張貼留言

0 留言