面向對象_方法_例題

java書P103,c#書P153
注意:現階段,忽略一切修飾符
先閱讀文字,別看例程
---------------------------------
基礎:喊人程序
say_hi()
say_hi("劉阿姨")
返回say_hi("劉阿姨")
總結:方法基本用法java

【格式】 返回值類型 方法名稱(參數)算法

{c#

  【方法內容】數組

  return 返回值;blog

}
------------------------------
最大值2遞歸

練習:編寫四個方法,分別求兩個數的和差積商,並運用。內存

思考題:字符串

輸入一個數n,返回1+2+3+...+n,並調用。
輸入兩個數m,n(m<n),返回m+(m+1)+...+n,並調用。get

(*爲c#專用,下同)
交換(值、數組、數組的值、*引用類型)string

{//C#專用

  //*引用類型代碼:

static void swap(ref int x,ref int y)
        {
            int z;
            z = x;
            x = y;
            y = z;
        }
        static void Main(string[] args)
        {
            int a = 100, b = 200;
            swap(ref a, ref b);
            Console.WriteLine(a);
            Console.WriteLine(b);
            Console.ReadKey();
        }

  內存狀態:

}
返回多值(字符串、數組、*out)
最大值3(嵌套調用)
遞歸:
  天然數累加(java例5-5)
  統計入黨申請書(見例程士兵報數)

  java代碼:

static int hm(int[] x,int n)
	{
		int c=0;
		if(n>0)
		{
			c=hm(x,n-1);
			if(x[n]==0)
			{
				return c;
			}
			else
			{
				return c+1;
			}
		}
		else
		{
			if(x[n]==0)
			{
				return 0;
			}
			else
			{
				return 1;
			}
		}
	}
	public static void main(String args[])
	{
		int[] a= {0,1,1,0,1,0,1,1,0};
		int count;
		count=hm(a,a.length-1);
		System.out.println(count);
	}

  c#代碼:

private void button1_Click(object sender, EventArgs e)
        {
            int[] a = { 1, 0, 1, 1, 1, 1, 0, 1 };
            label1.Text = "";
            baoshu(a,7);
        }

        int baoshu(int[] a,int y)
        {
            int hear;
            if (y > 0)
            {
                do
                {
                    y--;
                } while (a[y] != 1);
                hear = baoshu(a,y);
                label1.Text += "," + (hear + 1).ToString();
                return hear + 1;
            }
            else
            {
                label1.Text = "1";
                return 1;
            }
        }

  

  按順序逐個輸出整數的各位(見例程)

    java代碼:

public static void main(String[] args) {
		// TODO Auto-generated method stub
		int a = 17765824;
        String msg=getBit(a);
        System.out.println(msg);
	}
	
	static String getBit(int x)
    {
        String t_s;
        if (x > 9)
        {
            t_s = getBit(x / 10);
            t_s +=","+(x % 10);
        }
        else
        {
            t_s = x+"";
        }
        return t_s;
    }

    c#代碼:

        private void button1_Click(object sender, EventArgs e)
        {
            int a = 17765824;
            string msg=getBit(a);
            label1.Text = msg;
        }

        string getBit(int x)
        {
            string t_s;
            if (x > 9)
            {
                t_s = getBit(x / 10);
                t_s +=","+(x % 10).ToString();
            }
            else
            {
                t_s = x.ToString();
            }
            return t_s;
        }

  


----------------------------------
思考題(題目說明引自百度百科):

漢諾塔:漢諾塔(又稱河內塔)問題是源於印度一個古老傳說的益智玩具。大梵天創造世界的時候作了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞着64片黃金圓盤。大梵天命令婆羅門把圓盤從下面開始按大小順序從新擺放在另外一根柱子上。而且規定,在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動一個圓盤。

八皇后:八皇后問題,是一個古老而著名的問題,是回溯算法的典型案例。該問題是國際西洋棋棋手馬克斯·貝瑟爾於1848年提出:在8×8格的國際象棋上擺放八個皇后,使其不能互相攻擊,即任意兩個皇后都不能處於同一行、同一列或同一斜線上,問有多少種擺法。 高斯認爲有76種方案。1854年在柏林的象棋雜誌上不一樣的做者發表了40種不一樣的解,後來有人用圖論的方法解出92種結果。計算機發明後,有多種計算機語言能夠解決此問題。

相關文章
相關標籤/搜索