/*标题:奇怪的分式
对于分子、分母都是 1~9 中的一位数的情况,还有哪些算式可以这样计算呢?
请写出所有不同算式的个数(包括题中举例的)。
显然,交换分子分母后,例如:4/1 乘以 5/8 是满足要求的,这算做不同的算式。
但对于分子分母相同的情况,2/2 乘以 3/3 这样的类型太多了,不在计数之列!
注意:答案是个整数(考虑对称性,肯定是偶数)。
快速解题思路:蓝桥杯的主打解题算法-暴力,
就是在这个时候派上用场的,什么都不用想,直接码。 一个四重循环。
(差判需要注意精度,相除记得乘以1.0)
*/
#include <iostream>
#include <cstdio>
#include <cmath>
#define eps 10e-10 //10e - 10 代表10的-9次方,0.0000000001
using namespace std;
int main()
{
int ans = 0;
for(int i = 1;i < 10;i++ )
{
for(int j = 1;j < 10;j++)
{
for(int r =1;r < 10;r++)
{
for(int k = 1;k < 10; k++)
{
if(i == j|| r == k)
continue;
if(fabs((i * 10 + r)*1.0 / (j*10 + k) - (i * r*1.0) /(j*k)) < 0.00001)//判断这二种方法的结果一样
ans++;
}
}
}
}
printf("%d\n",ans);
return 0;
对于分子、分母都是 1~9 中的一位数的情况,还有哪些算式可以这样计算呢?
请写出所有不同算式的个数(包括题中举例的)。
显然,交换分子分母后,例如:4/1 乘以 5/8 是满足要求的,这算做不同的算式。
但对于分子分母相同的情况,2/2 乘以 3/3 这样的类型太多了,不在计数之列!
注意:答案是个整数(考虑对称性,肯定是偶数)。
快速解题思路:蓝桥杯的主打解题算法-暴力,
就是在这个时候派上用场的,什么都不用想,直接码。 一个四重循环。
(差判需要注意精度,相除记得乘以1.0)
*/
#include <iostream>
#include <cstdio>
#include <cmath>
#define eps 10e-10 //10e - 10 代表10的-9次方,0.0000000001
using namespace std;
int main()
{
int ans = 0;
for(int i = 1;i < 10;i++ )
{
for(int j = 1;j < 10;j++)
{
for(int r =1;r < 10;r++)
{
for(int k = 1;k < 10; k++)
{
if(i == j|| r == k)
continue;
if(fabs((i * 10 + r)*1.0 / (j*10 + k) - (i * r*1.0) /(j*k)) < 0.00001)//判断这二种方法的结果一样
ans++;
}
}
}
}
printf("%d\n",ans);
return 0;
}