算法题,分数变小数,路过有分
参与过 "一个求和的算法,算法高手请进 "
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> ();