日期:2014-05-20  浏览次数:20871 次

算法题,分数变小数,路过有分
参与过 "一个求和的算法,算法高手请进 "
http://community.csdn.net/Expert/TopicView1.asp?id=5362401
会得到额外的分

算法需求
    将分数   N/M   (N,M为自然数)的形式,转换为小数表示
    小数循环部分用括号表示,例如:1/3=0.(3)

输入分子和分母:   N,M
输出字符串

输出范例
1/3=.(3)
10/3=3.(3)
1/7=.(142857)
2/8=.25
1024/17=60.(2352941176470588)

private   string   Calc(int   N,   int   M)
{
        //   TODO
}
private   void   button1_Click(object   sender,   EventArgs   ce)
{
        Text   =   Calc(1,   3);
}


------解决方案--------------------
偶路过,呵呵
------解决方案--------------------
最近怎么那么多问算法的哦:)
呵呵
等想想...
------解决方案--------------------
mark
------解决方案--------------------
static void Main(string[] args)
{
Console.Write(Calc(1024, 17));
Console.Read();
}

static private string Calc(int N, int M)
{
// TODO
double a = (double)((double)N / (double)M);
string[] t = a.ToString().Split( '. ');
return t[0] + ".( " + t[1] + ") ";
}
------解决方案--------------------
比以前那题难多了
先要解决
小数位精度 可以 无限制的 除出结果 直到开始有循环体

2是判断 到底是 从 那里 开始循环的

呵呵 期待 其他高手 偶苦思...


------解决方案--------------------
Red_angelX(当你XX你会想起谁)
不对
------解决方案--------------------
听说有分,特来路过一下~
------解决方案--------------------
这个题目如果不限定小数位精度,难!
mark先...
------解决方案--------------------
1/3=.(3)
10/3=3.(3)
1/7=.(142857)
2/8=.25
1024/17=60.(2352941176470588)

从范例里没看出对输出精度规则-_-#
------解决方案--------------------
据说有分,路过一瞧.
------解决方案--------------------
晕 看错了 ()表示循环部分... 重想 丢脸了
------解决方案--------------------
好象有趣,特来好奇一下。
------解决方案--------------------

------解决方案--------------------
关键还是精度问题。还有遇到e和Pai那怎么输出来,无限不循环。。肯定还会有精度的限制的
------解决方案--------------------
Math.中没有转换吗?直接写N/M得不出小数吗?

如果要纯粹自己写算法,得要分析分析,但我觉得好象不大难嘛。
------解决方案--------------------
发现没有小数位规定
路过看看
------解决方案--------------------
是夠難的,關注一下吧!
------解决方案--------------------
我也在想模拟笔算,想想人工处理的时候的思路
------解决方案--------------------

//前提:求分数n/m的小数表述。
//尝试:
string TestCoverte(int n,int m)
{
List <int> il=new List <int> ();