思路:
報數的人是第幾個,不是陣列序號
// 0 1 2
// 1 2 0
// 0 2
// *
//// 0 1 2 3 4 5 6
// 1 2 0 1 2 0 1
// 2 0 1 2 0
// 1 2 0
// 0 1
// *
方法一:
(超時)
#include
intmain()
;//每一位為0表示未被淘汰
sum=
0;i=
0;k=0;
//k為報的數字,sum為被淘汰多少人
while(1
)}i++
;//下乙個人報數
if(i>n-1)
//i超過下表n-1de時候(第n個人),從0號人重新開始遍歷
i=0;
}printf
("%d\n"
,i+1);
}return0;
}
方法二:
(超時)
#include
intmain()
while
(flag!=1)
}}}for
(tag=
0;tag)//尋找未淘汰的人
if(a[tag]==0
)break
;printf
("%d\n"
,tag+1)
;}return0;
}
方法三:
//(舊-num)% sum = 新 —> 舊 =(新+num)% sum
具體的分析見->約瑟夫問題
#include
#define num 3
intysh
(int sum,
int num,
int n)
else
}int
main()
return0;
}
2048 浙江工商大學oj
方法一 include include include intmain b 4 scanf d d d d a 0 a 1 a 2 a 3 k 3 for int j 3 j 0 j memset a,0 sizeof a v 3 if b 2 b 3 else if b 2 b 1 else if...
浙江工商大學python題庫 浙江工商大學
浙江工商大學 我要認證 登入管理後台 浙江工商大學坐落於風景秀麗的浙江省會城市杭州市,是一所辦學歷史悠久的省屬重點大學。前身是建立於1911年的杭州中等商業學堂,至今已有100多年的辦學歷史,是近代中國最早培養商業專門人才的學校之一。有章乃器 駱耕漠等著名校友。學校先後隸屬於原國家商業部和國內 部 ...
A B X 浙江工商大學oj 詳細解析版
超時 最容易想到的,時間複雜度o n n 我一以為先排個序,在巢狀迴圈會快點,能ac掉,提交後發現還是我想多了 include include using namespace std intmain if tag 0 break if tag cout no return0 空間換時間的 今天剛學了...