日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

C語(yǔ)言圍圈報(bào)數(shù)題目代碼實(shí)現(xiàn)_C 語(yǔ)言

作者:我說(shuō) ? 更新時(shí)間: 2022-03-22 編程語(yǔ)言

圍圈報(bào)數(shù) 題目

解題步驟

一.整體邏輯

1.從第1個(gè)人開(kāi)始報(bào)數(shù),
2.數(shù)到第m個(gè)人出列,
3.然后從出列的下一個(gè)人開(kāi)始報(bào)數(shù),
4.數(shù)到第m個(gè)人又出列,…,如此反復(fù)到所有的人全部出列為止。

二.邏輯的實(shí)現(xiàn)

1.創(chuàng)造一個(gè)數(shù)組來(lái)記錄人的信息
2.利用循環(huán)依次報(bào)數(shù)(當(dāng)只剩下一個(gè)人的時(shí)候,循環(huán)結(jié)束(因?yàn)椴恍枰獔?bào)數(shù)了,直接輸出就可以了))
3.輸出報(bào)到m的人,并且將他標(biāo)記起來(lái)(表示此人已出列)
4.最后輸出剩下的那個(gè)人

三.代碼的實(shí)現(xiàn)

#include<stdio.h>
#include<string.h>
#pragma warning(disable:4996)
int main()
{
	int n, m;
	scanf("%d %d", &n,& m);
	int* arr = (int*)malloc(sizeof(int) * (n+1));  //創(chuàng)造一個(gè)數(shù)組
	for (int i = 0; i <= n; i++)
	{
		arr[i] = i ;                       
	}
	int number = 0;//出列的人數(shù)
	int k = 0;
	int j = 1;
	while (number < n - 1)  //當(dāng)只剩下一個(gè)人的時(shí)候推出
	{
		if (arr[j] != 0)//報(bào)數(shù)
		{
			k++;
		}	
		if (k == m)
		{
			printf("%d ", arr[j]);
			arr[j] = 0; //出列的人標(biāo)記起來(lái)
			number++;
			k = 0;
		}
		j++;
		if (j == n+1)        //當(dāng)最后一個(gè)人報(bào)完的時(shí)候,回到第一個(gè)人
			j = 1;
	}
	for (int i = 1; i <= n; i++)
	{
		if (arr[i] != 0)
			printf("%d", arr[i]);  //最后打印出剩下的一個(gè)人
	}
	return 0;
}

感悟

最近過(guò)得十分的壓抑,感覺(jué)胸上壓了塊石頭一樣,我覺(jué)得根本上還是自己太墮落了,沒(méi)有去努力,跟沒(méi)有去朝著能實(shí)現(xiàn)自己人生目標(biāo)和價(jià)值的方向去奮斗,所以才導(dǎo)致自己莫名的低落。所以我決定以后每天寫(xiě)一到兩篇博客,即是對(duì)自己的督促,也是對(duì)知識(shí)的鞏固!

這個(gè)題本質(zhì)上還是借助了鏈表的概念,創(chuàng)造一個(gè)數(shù)組也就是創(chuàng)造一個(gè)鏈表來(lái)保存隊(duì)伍的信息。
一開(kāi)始我并沒(méi)有想到能直接創(chuàng)造一個(gè)數(shù)組來(lái)實(shí)現(xiàn),導(dǎo)致想得過(guò)于復(fù)雜了。
以后在學(xué)數(shù)據(jù)結(jié)構(gòu)的時(shí)候也要多做總結(jié)和歸納,吸取里面寶貴的技巧,不能寫(xiě)了一題忘了一題。

原文鏈接:https://blog.csdn.net/m0_61719175/article/details/122231194

欄目分類(lèi)
最近更新