當前位置:編程學習大全網 - 編程軟體 - C語言開燈問題就解釋,題目什麽意思?

C語言開燈問題就解釋,題目什麽意思?

//我覺得7號燈肯定是在關閉狀態

//因為第1個人把所有等打開,那麽只有第7個人是7的倍數,

//所以第7個人會把第7個燈關閉掉,7號燈的狀態肯定是關閉的

//所以說妳這個輸出有可能是錯誤的。

//給妳寫的完整代碼,希望能幫到妳。

#include<stdio.h>

#define?N?1000

struct?Light

{

int?num;

int?onOff;?//1打開?0關閉

};

int?main()

{

int?n,k,i;

Light?light[N];

scanf("%d?%d",&k,&n);

if(k>n||n>1000) //不符合條件的直接返回

return?0;

for(i=0;i<N;i++)?//初始化燈都是亮著的,因為第1個人會把所有燈打開

{

light[i].onOff?=?1;

light[i].num?=?i+1;

}

for(i=2;i<=k;i++)?//從第2個人開始循環,壹直到第k個

for(int?j=0;j<n;j++)

if(light[j].num%i==0&&light[j].num>=i)?//如果燈的編號是人的編號的倍數,且燈號大於人號

{

if(light[j].onOff==1)?//如果是開,就關閉,否則打開

light[j].onOff=0;

else?light[j].onOff=1;

//輸出信息

printf("i=%d?第%d號燈,狀態:%d\n",i,light[j].num,light[j].onOff);

}

for(i=0;i<n;i++)?//遍歷,輸出所有打開的燈

if(light[i].onOff==1)

printf("%d?",light[i].num);

printf("\n");

return?0;

}

  • 上一篇:C++編程問題
  • 下一篇:甘肅鐘瑞創博科技有限公司怎麽樣?
  • copyright 2024編程學習大全網