java一个关于light类【灯】的编程

java一个关于light类【灯】的编程,第1张

建议用eclipse工具,这样的一个腔返类,用工具很快就生成了。

public

class

light

{

private

int

watts

private

boolean

indicator

/**

*

@param

watts

*

:创建具有watts瓦的对象

*/

public

light(int

watts)

{

this.watts

=

watts

}

/**

*

@param

watts

*

:创建具有watts瓦的对象

*

*

@param

indicator

*

:创建具有watts瓦,开关状态

为indicator的对象

*/

public

light(int

watts,

boolean

indicator)

{

super()

this.watts

=

watts

this.indicator

=

indicator

}

/**

*

开灯,即灯的状态置为开

*/

public

void

swithoh()

{

this.indicator

=

true

}

/橘圆洞**

*

关灯

*/

public

void

printlnoff()

{

this.indicator

=

false

}

/**

*

输出灯的瓦数信圆枯息和开灯的状态·

*/

public

void

printlnfo()

{

system.out.println("灯的瓦数是:"

+

this.watts

+

"\n开关状态是:"

+

this.indicator)

}

}

假设前提:初始状态是键大灭的,有两种算法,一种常规算法,一种智能算法,打印结果:

1

4

9

16

25

36

49

64

81

100

---------------------------------------------------

public class Test {

/**

* @param 两种方法打印100盏灯的状态

*/

public static void main(String[] args) {

//printStatus(100)

printStatusX(100)

}

/**

* 打印所有最终亮灯的编号 常规算法

*

* @param cout 灯的数量

*/

static void printStatus(int count) {

if (count <1) {

throw new IllegalArgumentException("illegal argument!")

}

for (int i = 1i <= counti++) {

// 如果是第一盏灯,那么它应该是亮的

if (i == 1) {

System.out.println("1")

continue

}

// 如果不是第一盏灯,那么它肯定至少被按过两次,所以假定是灭的(false)

boolean status = false

// 除去至少按过的两次,对于编号对于2到编号减1的整数,如果能够整除,就改变一次灯的状态

for (int j = 2j <ij++) {

if (i % j == 0) {

status = !status

}

}

// 如果灯腊物是亮的,打印其编号

if (status) {

System.out.println(i)

}

}

}

/**

* 打印所有最终亮灯的编号 智能算法

* 如果被按的次数是奇数,那么灯就是亮着的,第i盏灯被按的奇偶是:如果i==1,被按1次,

* 如果i>1,i可以整除的数是:1,x2,x3,x4...xc,xb,xa,i,因此可以得到下列等式:

* 1*i=i,x2*xa=i,x3*xb=i,x4*xc=i,都是成对的,只有存在两个因数相同的情况下,

* i可以整稿局竖除的数才是奇数,因此,当i是整数平方数时,它是亮着的.

*

* @param cout 灯的数量

*/

static void printStatusX(int cout) {

if (cout <1) {

throw new IllegalArgumentException("illegal argument!")

}

for(int i=1i<=couti++){

double d = Math.sqrt(i)

if((int)d == d){

System.out.println(i)

}

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12568212.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存