「java求灯」Java求余数
本篇文章给大家谈谈java求灯,以及Java求余数对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
java一个关于light类【灯】的编程
建议用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);
}
}
java程序问题?2015盏灯
答案不知道有没有问题,结果是44。对的话请采纳。
package com;
public class Test {
public static void main(String[] args) {
int[] arr = new int[2015];
int num = getNum(arr);
System.out.println(num);
}
public static int getNum(int[] arr) {
for (int l = 0; l arr.length; l++) {//不管多少栈灯,第一次都是打开,取1为开
arr[l] = arr[l] + 1;
}
int i = 1;
while (i arr.length) {
i++;
/*j就从1开始了,也就是第二栈灯开始依次对2取余
* 下一次循环,从第二栈灯依次对3取余
*取余为0并且取反的就是要做开关操作的灯
*/
for (int j = 1; j arr.length; j++) {
if ((j + 1) % i == 0) {
arr[j] = -arr[j];
}
}
}
int count = 0;
for (int value : arr) {//结果为1的就是打开
if (value == 1)
count++;
}
return count;
}
}
如何用java实现1到100号灯的开关问题
假设前提:初始状态是灭的,有两种算法,一种常规算法,一种智能算法,打印结果:
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 = 1; i = count; i++) {
// 如果是第一盏灯,那么它应该是亮的
if (i == 1) {
System.out.println("1");
continue;
}
// 如果不是第一盏灯,那么它肯定至少被按过两次,所以假定是灭的(false)
boolean status = false;
// 除去至少按过的两次,对于编号对于2到编号减1的整数,如果能够整除,就改变一次灯的状态
for (int j = 2; j i; j++) {
if (i % j == 0) {
status = !status;
}
}
// 如果灯是亮的,打印其编号
if (status) {
System.out.println(i);
}
}
}
/**
* 打印所有最终亮灯的编号 智能算法
* 如果被按的次数是奇数,那么灯就是亮着的,第i盏灯被按的奇偶是:如果i==1,被按1次,
* 如果i1,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=1;i=cout;i++){
double d = Math.sqrt(i);
if((int)d == d){
System.out.println(i);
}
}
}
}
java解决 开关灯问题
按照题目要求编写的开关灯问题的Java程序如下
import java.util.Scanner;
public class AA {
public static void main(String[] args) {
System.out.print("请输入正整数N和M,以单个空格隔开:");
Scanner sc=new Scanner(System.in);
int N=sc.nextInt();
int M=sc.nextInt();
if(N5000||MN){
System.out.println("输入错误!");
return;
}
int i,j;
boolean a[]=new boolean[N+1];
String s="";
for(i=1;i=N;i++){
a[i]=true;
}
for(i=1;i=N;i++){
for(j=1;j=M;j++){
if(i%j==0){
if(a[i]==true)
a[i]=false;
else
a[i]=true;
}
}
}
for(i=1;i=N;i++){
if(a[i]==false)
s=s+i+",";
}
System.out.println(s.substring(0,s.length()-1));
}
}
java求灯的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于Java求余数、java求灯的信息别忘了在本站进行查找喔。