十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
boolean falg = false;
在垫江等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站设计、成都网站建设 网站设计制作按需规划网站,公司网站建设,企业网站建设,成都品牌网站建设,成都营销网站建设,成都外贸网站制作,垫江网站建设费用合理。
falg = true;
break;
}
}
if (falg) {
continue;
}
我的思路:
1.定义一个开关的接口(ISWitcher),用于设定开关的功能
2.定义开关类实现开关接口的功能
3.定义电器类,所有电器的父类
4.对电灯,投影仪,风扇等电器进行定义
5.进行测试
按照题目要求编写的开关灯问题的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));
}
}
假设前提:初始状态是灭的,有两种算法,一种常规算法,一种智能算法,打印结果:
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);
}
}
}
}
Runtime.getRuntime().exec("cmd.exe /c ...")
其中...为你要用的dos命令
DOS关机命令如下,怎么用你自己填吧
shutdown [/i | /l | /s | /r | /a | /p | /h | /e] [/
[/m \\computer][/t xxx][/d [p:]xx:yy [/c "comment"]]
没有参数 显示帮助。这与键入 /? 是一样的
/? 显示帮助。这与不键入任何选项是一样的
/i 显示图形用户界面(GUI)。
这必须是第一个选项
/l 注销。这不能与 /m 或 /d 选项一起使用
/s 关闭计算机
/r 关闭并重启动计算机
/a 放弃系统关闭。
这只能在超时过程中使用
/p 关闭本地计算机,没有超时或警告。
这只能与 /d 选项一起使用
/h 休眠本地计算机。
这只能与 /f 选项一起使用
/e 将计算机的意外关闭原因记入文档
/m \\computer 指定目标计算机
/t xxx 设置关闭前的超时为 xxx 秒。
有效范围是 0-600,默认为 30
/c "comment" 重启动或关闭的原因的注释。
最大允许 127 个字符
/f 强制正在运行的应用程序关闭而不事先警告用户
/d [p:]xx:yy 提供重启动或关闭的原因
p 表明重启动或关闭是计划内的
xx 是主要原因号(小于 256 的正整数)
yy 是次要原因号(小于 65536 的正整数)