返回信息流把无限循环小数表示成分数的方法:
e.g.
num为0.abcd... ,(abcd)循环
那么num=abcd/9999,然后约分即可
这里面牵扯到等比数列求和
即num=abcd/10000+abcd/100000000+...
=abcd*(1/10000/(1-1/10000))
=abcd/9999
懒得用公式编辑器了,所以就举了一个具体的例子,n位的推起来一样
PS:
这里面还有一个细节,就是0.9999999.....=1
用极限很好理解,更简单的思路是:
令a=0.9999999999.....
那么10a=9.99999999....
所以10a=9+a
即a=1
得证
or:
0.99999999....=0.111......*9=1/9 * 9 = 1
这两个都不很严谨,不过挺有意思
这是一条镜像帖。来源:北邮人论坛 / buptmstc / #3157同步于 2008/6/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
BUPTMSTC机器人发帖
发一个简单的东东~~
PtwCJ
2008/6/18镜像同步9 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
结合上最大公约数的函数,是一道有意思的小题
【 在 PtwCJ (鲜的每日C|头像不是我,我是长毛贼~~) 的大作中提到: 】
: 把无限循环小数表示成分数的方法:
: e.g.
: num为0.abcd... ,(abcd)循环
: ...................
额....
我感兴趣的是...怎么约分..
【 在 PtwCJ (鲜的每日C|头像不是我,我是长毛贼~~) 的大作中提到: 】
: 结合上最大公约数的函数,是一道有意思的小题
最大公约数怎么求呢.....
难道列竖式?
【 在 PtwCJ (鲜的每日C|头像不是我,我是长毛贼~~) 的大作中提到: 】
: 求出最大公约数,一除不就结了
[quote]
int gcd(int a, int b) {
while(a % b != 0) {
int temp=a % b;
a=b;
b=temp;
}
return b;
}
[/quote]
【 在 shimen (石门(小付是也)) 的大作中提到: 】
: 最大公约数怎么求呢.....
: 难道列竖式?
我突然之间想到了在哪学过-_-||
【 在 PtwCJ (鲜的每日C|头像不是我,我是长毛贼~~) 的大作中提到: 】
: [/quote]
: int gcd(int a, int b) {
: while(a % b != 0) {
: ...................
想起来了....
是大一的计算机基础..或者是离散数学里面学过.-_-||
赶紧翻翻离散书...看看有没有这个..
【 在 PtwCJ (鲜的每日C|头像不是我,我是长毛贼~~) 的大作中提到: 】
: 我是在K&R那本C教程上看到的