C++求解
2022-09-14 18:46 作者:諷刺派數(shù)學(xué)家 | 我要投稿
//有n個(gè)人,編號(hào)為1~n。開始時(shí),所有人都站著,
//接著第2個(gè)及2的倍數(shù)的人坐下,
//然后,第3個(gè)人及3的倍數(shù)的人按相反的操作
//(站的人坐下,坐的人站起來(lái)),
//依此類推,一共操作到第k人及k的倍數(shù),
//問(wèn)最后哪些人站著?
//輸入n和k,輸出站著人的編號(hào)(k≤n≤10000)
//輸入樣例:
//7?? 3
//輸出樣例:
//1?? 5?? 6?? 7
#include<bits/stdc++.h>
using namespace std;
int main()
{
???????? const int N=1e4;
???????? int a[N];//0表站立,1表坐
???????? int n,k;
???????? cin>>n>>k;
???????? for(int i=2;i<=k;i++)//每次變的人的始序號(hào)加1
???????? {
?????????????????? for(int j=1;j<=n;j++)//???? 不理解
?????????????????? {
??????????????????????????? if(j%i==0)?? a[j]=!a[j];//取反;???? ;不理解
?????????????????? }???????
???????? }
???????? for(int i=1; i<=n; i++)//???? 不理解
???????? {
?????????????????? if(a[i]==0) cout<<i<<" ";//如果站立,輸出序號(hào)
??? }
??? return 0;
}
標(biāo)簽: