算法入门开灯问题,新做法
生活随笔
收集整理的這篇文章主要介紹了
算法入门开灯问题,新做法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
有n盞燈,編號為1~n,第1個人把所有燈打開,第2個人按下所有編號為2的倍數的開關(這些燈將被關掉),第3個人按下所有編號為3的倍數的開關(其中關掉的燈被打開, ? ? ? 開著燈將被關閉),依此類推。一共有k個人,問最后有哪些燈開著?
? ? 輸入:n和k,輸出開著的燈編號。k≤n≤1000。
? ?樣例輸入:7 ?3
? ?樣例輸出:1 5 6 7?
#include <iostream>
using namespace std;
int main()
{
?int a[1001],i,j,n,k;
?while(cin>>n>>k)
?{
??for(i=1;i<=n;i++)
???a[i]=1;
??for(j=2;j<=k;j++)
???for(i=2;i<=n;i++)
???{
????if(i%j==0)
?????a[i]=a[i]*(-1);
???}
???for(i=1;i<n;i++)
???{
????if(a[i]==1)
?????cout<<i<<" ";
???}
???if(a[n]==1)
????cout<<n<<endl;
?}
?return 0;
}
?
?
?
總結
以上是生活随笔為你收集整理的算法入门开灯问题,新做法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: redis学习及实践3---Jedis、
- 下一篇: jeewx-api-1.0.1(捷微微信