報數:有n個人做成一圈,按順序1到n編好號。從第一個人開始報數,報到m(m<n)的人退出圈子。如此下去,直到留下最後一個人,輸入整數n和m,並按退出順序輸出退出圈子的人的編號。
#include <stdio.h>
#include <stdlib.h>
void main(){
int m,n,i,cnt=0,CNT=0,flag;
scanf("%d%d",&m,&n);
int*a=(int*)malloc(n*sizeof(int));
for(i=0;i<n;i++)
a[i]=i+1;
while(1){
flag=CNT;
for(i=0;i<n;i++){
if(a[i]!=0){
cnt++;
CNT++;
}
if(cnt==m){
a[i]=0;
cnt=0;
printf("%d ",i+1);
}
}
if(CNT==flag+1)
break;
}
free(a);
}
相關文章
- n個人圍成一圈,第一個人從1開始數數,數到3的倍數的人離開,最後剩的人是第幾個
- 給定一個n,輸出從1到n的整數
- 統計整數區間[N,M](N,M<100000)中所以非偶數的合數個數,並輸出這個數。
- N個人,按M進行分組
- 輸入三個數按從大到小的順序輸出
- 輸入N,再輸入N個數,N
- 【JAVA習題六】輸入兩個正整數m和n,求其最大公約數Java
- N個人圍成一圈數到3(或3的倍數)時出圈,問剩下的人是誰?
- 03:因子 檢視 提交 統計 提問 總時間限制: 8000ms 記憶體限制: 65536kB 描述 輸入1個整數n。從小到大依次輸出n的所有因子。 輸入 1個整數n(n<20億) 輸出 升序輸出n的所記憶體
- 洗牌演算法擴充(從n個數中隨機m個數)演算法隨機
- python之矩陣相加:提示使用者輸入矩陣的行數n,再提示使用者輸入矩陣的列數m,接下來,提示使用者輸入 2*n*m 個數字(每次輸入 一個數字)。輸出 C=A+B。Python矩陣
- 【python初學者日記】讀入正整數m、n和k,求m、n之間能被k整除的所有整數Python
- 從陣列中找出N個數,其和為M的所有可能陣列
- 改進,從一個陣列中找出 N 個數,其和為 M 的所有可能陣列
- 劍指offer:輸入n個整數,找出其中最小的K個數。
- 3069 求n個整數的和
- 不能使用for迴圈,傳入n和m, 生成一個長度為n,每一項都是m的陣列陣列
- 本題要求統計給定整數M和N區間內素數的個數並對它們求和。
- 2022-07-17:1、2、3...n-1、n、n、n+1、n+2... 在這個序列中,只有一個數字有重複(n)。 這
- 計算2的N次冪n 可輸入,n為自然數
- JZ-031-從 1 到 n 整數中 1 出現的次數
- 3070 n個整數“打擂臺”
- 從一個無序,不相等的陣列中,選取N個數,使其和為M實現演算法(javascript實現)陣列演算法JavaScript
- 對N個數進行從大到小排序排序
- 將三個數按從大到小輸出
- 輸入3個整數a,b,c,要求按由小到大的順序將它們輸出,用函式實現函式
- 正規表示式{n,m}量詞(至少n次,最多m次)
- 輸入n個人的身高,然後從n個人中選出身高差值最小的兩個人作為禮儀(如果差值相同的話,選取其中最高的兩個人),要求輸出兩個禮儀的身高。
- 1304 和為零的N個唯一整數
- 給定兩個大小為 m 和 n 的正序(從小到大)陣列 nums1 和 nums2。請你找出並返回這兩個正序陣列的中位數。陣列
- n個骰子的點數
- 菲波那契數——根據輸入資料中的n,輸出第n項菲波那契數
- 寫一個方法,傳入數字x,從一個一維陣列裡找到兩個數字符合“n1 + n2 = x”陣列
- 輸入一個數倒序輸出(遞迴)遞迴
- L1-009 N個數求和
- 指標-n個數的排序指標排序
- join方法應用之一——按順序輸出三個執行緒執行緒
- 給定一個按非遞減順序排序的整數陣列 A,返回每個數字的平方組成的新陣列,要求也按非遞減順序排序。排序陣列