ural 1011 Conductors

来源:互联网 发布:星际皆知我爱你百度云 编辑:程序博客网 时间:2024/05/18 20:50

题意:(差点没看懂题目。。。囧)前面那个好像是说那句话有两种理解。。。一种是。。。售票员在公共汽车上裸奔?还有一种是。。。。?。。。(无关紧要- -)

给精确到0.01的p和q,求最小的i,使得存在整数x,i*p < x < i*q。

思路:(这道题我WA了好多次我会说麽。。。)我还是不晓得怎么弄精度的东西。。。希望高人指点啊。。。我的做法是。。。由于p和q是精确到0.01,我就把p和q都扩大到100倍。。。这样就没有浮点误差了吧干!剩下的就好说了。。。

#include <cstdio>#include <cstring>#include <cstdlib>int p, q;int solve(){int l, h;for (int i = 1; i <= 10000; ++ i){l = i*p;h = i*q-1;if (l/10000 != h/10000) return i;}return 10000;}bool isdigit(char c) { return (c>='0' && c<='9'); }int func(){char data[10];scanf("%s",data);int ret=0, i;for (i = 0; data[i]!='.'&&data[i]!='\0'; ++ i) ret = ret*10 + data[i]-'0';ret *= 100;if (strlen(data)-i == 2) ret += (data[i+1]-'0')*10;else if (strlen(data)-i == 3) ret += (data[i+1]-'0')*10 + data[i+2]-'0';return ret;}void input(){p = func();q = func();}int main(){input();printf("%d\n", solve());system("pause");}