鮪魚 發問時間: 電腦與網際網路程式設計 · 1 0 年前

C#怎麼寫出以二分猜值法重作除法運算。

請問各位一下

題目:請以二分猜值法重作除法運算。

例如:84除以3的商, 必在0與84之間。

這題程式該怎麼寫,就是能隨著輸入數字,會跑出答案出來。

希望有人可以幫忙解答,謝謝,15點贈送,感謝幫忙^^

1 個解答

評分
  • 1 0 年前
    最佳解答

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    namespace pupuDog

    {

    class Program

    {

    static int div2(int a, int b) {

    int hi, lo, m;

    int sign = (a*b)>0 ? 1 : -1;

    if(0 > a) a = -a;

    if(0 > b) b = -b;

    for(hi=a, lo=0, m=(hi+lo)/2; hi > lo; m=(lo+hi)/2) {

    int r = a-(b*m);

    if (r >= b) lo = m + 1;

    else if (0 > r) hi = m - 1;

    else break;

    }

    return sign*m;

    } // end of div2()

    static void Main(string[] args)

    {

    int a, b; // to find a/b

    Console.WriteLine("Enter interger a:");

    a = Convert.ToInt32(Console.ReadLine());

    Console.WriteLine("Enter non-zero interger b:");

    b = Convert.ToInt32(Console.ReadLine());

    /* test code below ------------

    for(a=-2000;a < 2000; ++a)

    for(b=-1; b > -4000; --b) if(a/b != div2(a,b)) */

    Console.WriteLine(" " + a + " divided by " + b + " is " + div2(a, b));

    Console.WriteLine("End");

    Console.ReadLine();

    }

    }

    }

還有問題?馬上發問,尋求解答。