任何一个无限循环小数或有限小数都可以表示为分数的形式。
(1)有限小数
假设为a.b1b2b3b4b5
我们可以表示为:
a+(b1b2b3b4b5)/10^5;
(2)无限循环小数
假设为a.b1b2b3b4b5b6(c1c2c3c4)
a.b1b2b3b4b5b6(c1c2c3c4) = ab1b2b3b4b5b6.(c1c2c3c4)/10^6; (1)
另ab1b2b3b4b5b6 = X; 0.c1c2c3c4 =Y;
对Y而言:
0.(c1c2c3c4)= Y ;
0.(c1c2c3c4) = c1c2c3c4.(c1c2c3c4)/10^4
即:
Y×10^4= c1c2c3c4+Y;
所以:
Y = c1c2c3c4/(10^4-1);
再把Y带入到(1)中,即可求得X的表达式:
下一步是怎样求解分子分母的最大公约数?
//C++求最大公约数 //碾除法 #include <iostream> using namespace std; void main() { int a = 0; int b = 0; cout<<"Please input two integriate"<<endl; cin>>a; cin>>b; cout<<endl; int c = a>b?a:b; a = c==a?b:a; if(c%a == 0) { cout<<"The Max value:"<<a<<endl; } else { while(int e = c%a) { c = a; a = e; } cout<<"The Max value:"<<a<<endl; } }
顺便求一个最小公倍数:
for(int i =e;(i%d)!=0 || (i%e)!=0;i++) { } cout<<i<<endl;