关于算法与OO

10-05-15 purh
题目:"农场一头小母牛,每年生头小母牛,

母牛五岁产母牛,二十年上多少牛?"

要求:分别从算法和OO的角度实现下,看其中区别?

[该贴被purh于2010-05-15 10:15修改过]

    

1
flyingwalf
2010-05-16 22:02
写了个OO的,随便讨论下,呵呵

import java.util.Vector;

public class Farm

{

Vector<Cow> cows;

class Cow

{

private int age;

public Cow()

{

age = 0;

}

public Cow(int _age)

{

age = _age;

}

public void passAYear()

{

if(this.age >= 5)

{

Cow cow = new Cow();

cows.add(cow);

}

this.age++;

}

}

public Farm()

{

cows = new Vector();

Cow cow = new Cow(5);

cows.add(cow);

}

public int getNumOfCowsByYear(int year)

{

for(int i = 0; i < year; i++)

{

for(int j=0; j < cows.size(); j++)

{

Cow cow = cows.get(j);

cow.passAYear();

}

}

return cows.size();

}

public static void main(String[] args)

{

Farm farm = new Farm();

int year = 20;

int num = farm.getNumOfCowsByYear(year);

System.out.println("After " + year + " years, there're " + num + " cows in the farm.");

}

}

purh
2010-05-25 16:38
递归实现思路:f(n)=f(n-1)+f(n-4)

对比来讲OO好像在纯计算方面稍显苍白

[该贴被purh于2010-05-25 16:48修改过]

banq
2010-05-26 08:12
2010年05月25日 16:38 "purh"的内容
对比来讲OO好像在纯计算方面稍显苍白 ...

OO是一种方法来,粒度比较粗,而算法是一种内聚性很强的方法,如果你在事物内部发行了代表规律的算法,那么就用算法表达;如果你无法发现,就以事物外部特征来形象表述它,这就是象数区别。

beepbug
2010-06-19 18:43
算法与OO,是不同层面的东西,没法拿来比较。

算法,是如何通过代码来解决现实问题的办法。它是很广义的东西,并不仅仅是回溯、排序、归并、查找等东西。

OO是一种代码编写风格。

你要比,也只能这样比:就这一具体问题,SP方式下与OOP方式下,哪个能实现较好的算法?

猜你喜欢
2Go 1 2 下一页