第四届蓝桥杯C++B组——奇怪的分式

    xiaoxiao2021-03-25  129

    上小学的时候,小明经常自己发明新算法。一次,老师出的题目是: 1/4 乘以 8/5 小明居然把分子拼接在一起,分母拼接在一起,答案是:18/45 (参见图1.png) 老师刚想批评他,转念一想,这个答案凑巧也对啊,真是见鬼! 对于分子、分母都是 1~9 中的一位数的情况,还有哪些算式可以这样计算呢? 请写出所有不同算式的个数(包括题中举例的)。 显然,交换分子分母后,例如:4/1 乘以 5/8 是满足要求的,这算做不同的算式。 但对于分子分母相同的情况,2/2 乘以 3/3 这样的类型太多了,不在计数之列!

    虽然是暴力,但要注意相除产生的小数的处理,浮点数的比较还是不能直接用==

    #include <iostream> #include <algorithm> #include <cstring> #include <cstdio> using namespace std; int main() { double a,b,c,d,ac,bd; int ans=0; for(a=1;a<=9;++a) for(b=1;b<=9;++b) for(c=1;c<=9;++c) for(d=1;d<=9;++d) { if(a!=b&&c!=d) { ac=a*10+c; bd=b*10+d; if((((a/b)*(c/d)-ac/bd)<0.000001)&&(((a/b)*(c/d)-ac/bd)>-0.000001)) { cout<<a<<" "<<b<<"+"<<c<<" "<<d<<"="<<ac<<" "<<bd<<endl; ans++; } } } printf("%d\n",ans); return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-14200.html

    最新回复(0)