1. 程式人生 > 其它 >每日程式C語言37-圈子報數問題

每日程式C語言37-圈子報數問題

技術標籤:C語言基礎c語言

題目:

有n個人圍城一圈,順序排好。從第一個人開始報數(從1到3報數),凡是報到3的人退出圈子,問最後留下的是原來的第幾號的那位

程式分析

可以使用陣列來儲存資料,在圈內記為1,不在圈內記為0

主要程式碼

main.c

int main(){
	int a[50], i, n, flag=0;
	scanf("%d", &n);
	int count=n;
	for (i=1; i<=n; i++)
		a[i]=1;//所有人都在圈內,為1 
	for (i=1; ;i++){
		if (i==n+1)
			i=1;//如果i超出了n個人,讓他重新回到1 
if (a[i]!=0) flag++; else continue; if (flag%3==0){ a[i]=0; count--; } if (count==1)//表示只剩下一個人在圈內 break; } for (i=1; i<=n; i++) if (a[i]!=0) printf("%d", i); system("pause"); return 0; }

執行結果

在這裡插入圖片描述

今日鞏固

  1. 靈活使用陣列解決實際問題
  2. for迴圈的判斷條件不寫情況下的使用