boolean falg = false;
在墊江等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶(hù)提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需規(guī)劃網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都營(yíng)銷(xiāo)網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站制作,墊江網(wǎng)站建設(shè)費(fèi)用合理。
falg = true;
break;
}
}
if (falg) {
continue;
}
我的思路:
1.定義一個(gè)開(kāi)關(guān)的接口(ISWitcher),用于設(shè)定開(kāi)關(guān)的功能
2.定義開(kāi)關(guān)類(lèi)實(shí)現(xiàn)開(kāi)關(guān)接口的功能
3.定義電器類(lèi),所有電器的父類(lèi)
4.對(duì)電燈,投影儀,風(fēng)扇等電器進(jìn)行定義
5.進(jìn)行測(cè)試
按照題目要求編寫(xiě)的開(kāi)關(guān)燈問(wèn)題的Java程序如下
import?java.util.Scanner;
public?class?AA?{
public?static?void?main(String[]?args)?{
System.out.print("請(qǐng)輸入正整數(shù)N和M,以單個(gè)空格隔開(kāi):");
Scanner?sc=new?Scanner(System.in);
int?N=sc.nextInt();
int?M=sc.nextInt();
if(N5000||MN){
System.out.println("輸入錯(cuò)誤!");
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));
}
}
假設(shè)前提:初始狀態(tài)是滅的,有兩種算法,一種常規(guī)算法,一種智能算法,打印結(jié)果:
1
4
9
16
25
36
49
64
81
100
---------------------------------------------------
public class Test {
/**
* @param 兩種方法打印100盞燈的狀態(tài)
*/
public static void main(String[] args) {
//printStatus(100);
printStatusX(100);
}
/**
* 打印所有最終亮燈的編號(hào) 常規(guī)算法
*
* @param cout 燈的數(shù)量
*/
static void printStatus(int count) {
if (count 1) {
throw new IllegalArgumentException("illegal argument!");
}
for (int i = 1; i = count; i++) {
// 如果是第一盞燈,那么它應(yīng)該是亮的
if (i == 1) {
System.out.println("1");
continue;
}
// 如果不是第一盞燈,那么它肯定至少被按過(guò)兩次,所以假定是滅的(false)
boolean status = false;
// 除去至少按過(guò)的兩次,對(duì)于編號(hào)對(duì)于2到編號(hào)減1的整數(shù),如果能夠整除,就改變一次燈的狀態(tài)
for (int j = 2; j i; j++) {
if (i % j == 0) {
status = !status;
}
}
// 如果燈是亮的,打印其編號(hào)
if (status) {
System.out.println(i);
}
}
}
/**
* 打印所有最終亮燈的編號(hào) 智能算法
* 如果被按的次數(shù)是奇數(shù),那么燈就是亮著的,第i盞燈被按的奇偶是:如果i==1,被按1次,
* 如果i1,i可以整除的數(shù)是:1,x2,x3,x4...xc,xb,xa,i,因此可以得到下列等式:
* 1*i=i,x2*xa=i,x3*xb=i,x4*xc=i,都是成對(duì)的,只有存在兩個(gè)因數(shù)相同的情況下,
* i可以整除的數(shù)才是奇數(shù),因此,當(dāng)i是整數(shù)平方數(shù)時(shí),它是亮著的.
*
* @param cout 燈的數(shù)量
*/
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關(guān)機(jī)命令如下,怎么用你自己填吧
shutdown [/i | /l | /s | /r | /a | /p | /h | /e] [/
[/m \\computer][/t xxx][/d [p:]xx:yy [/c "comment"]]
沒(méi)有參數(shù) 顯示幫助。這與鍵入 /? 是一樣的
/? 顯示幫助。這與不鍵入任何選項(xiàng)是一樣的
/i 顯示圖形用戶(hù)界面(GUI)。
這必須是第一個(gè)選項(xiàng)
/l 注銷(xiāo)。這不能與 /m 或 /d 選項(xiàng)一起使用
/s 關(guān)閉計(jì)算機(jī)
/r 關(guān)閉并重啟動(dòng)計(jì)算機(jī)
/a 放棄系統(tǒng)關(guān)閉。
這只能在超時(shí)過(guò)程中使用
/p 關(guān)閉本地計(jì)算機(jī),沒(méi)有超時(shí)或警告。
這只能與 /d 選項(xiàng)一起使用
/h 休眠本地計(jì)算機(jī)。
這只能與 /f 選項(xiàng)一起使用
/e 將計(jì)算機(jī)的意外關(guān)閉原因記入文檔
/m \\computer 指定目標(biāo)計(jì)算機(jī)
/t xxx 設(shè)置關(guān)閉前的超時(shí)為 xxx 秒。
有效范圍是 0-600,默認(rèn)為 30
/c "comment" 重啟動(dòng)或關(guān)閉的原因的注釋。
最大允許 127 個(gè)字符
/f 強(qiáng)制正在運(yùn)行的應(yīng)用程序關(guān)閉而不事先警告用戶(hù)
/d [p:]xx:yy 提供重啟動(dòng)或關(guān)閉的原因
p 表明重啟動(dòng)或關(guān)閉是計(jì)劃內(nèi)的
xx 是主要原因號(hào)(小于 256 的正整數(shù))
yy 是次要原因號(hào)(小于 65536 的正整數(shù))