問題:走廊裡依次排列著100盞燈,依次從1號編100號,都關著。
有100個學生從1號編到100號,依次走來,
1號學生從第一只開關按起,凡是1的倍數都按一下,
2號學生從第二隻開關按起,凡是2的倍數都按一下,
3號學生從第三隻開關按起,凡是3的倍數都按一下,
依次類推,直到第100號學生按完為止。
最後有多少只燈亮著?
*/ #include
#define n 100
void main(void)
printf("\n");
j = 0;
for(i = 0; i < n; i++)
} printf("\n\n");
} /*
l01: 1, l02: 0, l03: 0, l04: 1, l05: 0, l06: 0, l07: 0, l08: 0,
l09: 1, l10: 0, l11: 0, l12: 0, l13: 0, l14: 0, l15: 0, l16: 1,
l17: 0, l18: 0, l19: 0, l20: 0, l21: 0, l22: 0, l23: 0, l24: 0,
l25: 1, l26: 0, l27: 0, l28: 0, l29: 0, l30: 0, l31: 0, l32: 0,
l33: 0, l34: 0, l35: 0, l36: 1, l37: 0, l38: 0, l39: 0, l40: 0,
l41: 0, l42: 0, l43: 0, l44: 0, l45: 0, l46: 0, l47: 0, l48: 0,
l49: 1, l50: 0, l51: 0, l52: 0, l53: 0, l54: 0, l55: 0, l56: 0,
l57: 0, l58: 0, l59: 0, l60: 0, l61: 0, l62: 0, l63: 0, l64: 1,
l65: 0, l66: 0, l67: 0, l68: 0, l69: 0, l70: 0, l71: 0, l72: 0,
l73: 0, l74: 0, l75: 0, l76: 0, l77: 0, l78: 0, l79: 0, l80: 0,
l81: 1, l82: 0, l83: 0, l84: 0, l85: 0, l86: 0, l87: 0, l88: 0,
l89: 0, l90: 0, l91: 0, l92: 0, l93: 0, l94: 0, l95: 0, l96: 0,
l97: 0, l98: 0, l99: 0, l100: 1,
l01: 1, l04: 1, l09: 1, l16: 1, l25: 1, l36: 1, l49: 1, l64: 1,
l81: 1, l100: 1,
press any key to continue
*/對比幾個答案,做而論道編寫的程式,最簡單。
用c語言解決日期問題
用c語言計算日期。方法一 先算出到已知日期前的所有天數然後對7求餘數。計算所有天數的函式如下 int year sum int a int b int c 計算到輸入日期前的總共天數 平年每個月的天數 int e 閏年每個月的天數 while a 1 else sum 365 j 366 i if ...
問題 F 開燈問題(第二講)c語言
有n盞燈,編號為1 n,第1個人把所有燈開啟,第2個人按下所有編號為2的倍數的開關 這些燈將被關掉 第3個人按下所有編號為3的倍數的開關 其中關掉的燈被開啟,開著燈將被關閉 依此類推。一共有k個人,問最後有哪些燈開著?n和k,輸出開著的燈編號。k n 1000。輸出開著的燈編號 7 31 5 6 7...
演算法競賽 開燈問題 C
有n盞燈,編號為1 n。第1個人把所有燈開啟,第2個人按下所有編號為2的倍數的開關 這些燈將被關掉 第2個人按下所有的編號為3的倍數的開關 其中關掉的燈將被開啟,開著的燈將被關閉 以此類推。一共有k個人,問最後有哪些燈開著?輸入n和k,輸出開著的燈編號。k n 1000。樣例輸入 7 3 樣例輸出 ...