最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何使用C語言實現(xiàn)細(xì)菌的繁殖與擴(kuò)散

 更新時間:2021年11月02日 11:31:18   作者:Tim_zf  
這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)細(xì)菌的繁殖與擴(kuò)散,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

一.引言

這是我在csdn寫的第一篇文章~作為一個初學(xué)C的萌新,昨天碰到一道關(guān)于細(xì)菌繁殖與擴(kuò)散的題目,覺得很有意思,想了一個晚上,終于想到了解法😄

二.題目

詳情細(xì)菌的繁殖與擴(kuò)散​​​​​​

總時間限制: 1000ms 內(nèi)存限制: 65536kB

描述:

在邊長為9的正方形培養(yǎng)皿中,正中心位置有m個細(xì)菌。假設(shè)細(xì)菌的壽命僅一天,但每天可繁殖10個后代,而且這10個后代,有兩個分布在原來的單元格中,其余的均勻分布在其四周相鄰的八個單元格中。求經(jīng)過n(1≤n≤4)天后,細(xì)菌在培養(yǎng)皿中的分布情況。

輸入:

輸入為兩個整數(shù),第一個整數(shù)m表示中心位置細(xì)菌的個數(shù)(2 ≤ m ≤ 30),第二個整數(shù)n表示經(jīng)過的天數(shù)(1 ≤ n ≤ 4)。

輸出:

輸出九行九列整數(shù)矩陣,每行的整數(shù)之間用空格分隔。整個矩陣代表n天后細(xì)菌在培養(yǎng)皿上的分布情況。

樣例輸入

21

樣例輸出

0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 2 2 2 0 0 0
0 0 0 2 4 2 0 0 0
0 0 0 2 2 2 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0

三.思路以及代碼

思路

我的想法是這道題需要定義兩個二維數(shù)組,一個用來儲存上一天的數(shù)據(jù)(舊),一個用來計算并保存這一天的數(shù)據(jù)(新)。而這一天的數(shù)據(jù)又可以保存到舊數(shù)據(jù)中,用于下一天的計算(遞推)。

首先,在原位置上的每一個細(xì)菌都可以生兩個崽兒在原先的位置,并且在周圍的八個格子中各留下一個新生兒😝然后不幸凋亡……

這樣,我們先把上一天的數(shù)據(jù)保存在舊數(shù)據(jù)矩陣中,然后把上一天每個數(shù)據(jù)都乘以二放到新數(shù)據(jù)的矩陣中(0*2=0所以不用管),這是第一次循環(huán)。然后再進(jìn)行一次循環(huán),判斷如果舊數(shù)據(jù)矩陣的某一個位置的數(shù)據(jù)不為零,就在新數(shù)據(jù)矩陣對應(yīng)位置的周圍八個格子都加上該數(shù)據(jù),這一步就相當(dāng)于細(xì)菌在周圍單元格中的擴(kuò)散。這樣我們就完成了遞推過程。

注意哦,這個遞歸只能進(jìn)行四天(循環(huán)四次),要不然可能出現(xiàn)堆棧錯誤……

代碼

#include<stdio.h>
int main()
{
	int old[9][9], birth[9][9];//舊的培養(yǎng)基和新的培養(yǎng)基,用于遞推
	int m, n;//初始中央細(xì)菌數(shù)以及遞推的天數(shù)
	int i, j, p;
	scanf("%d%d", &m, &n);
	for (i = 0;i < 9;i++)
		for (j = 0;j < 9;j++)
		{
			birth[i][j] = 0;//變量的初始化
		}
	birth[4][4] = m;//中央細(xì)菌已經(jīng)長出
	for (p = 1;p <= n;p++)//開始遞推
	{
		for (i = 0;i < 9;i++)
			for (j = 0;j < 9;j++)
			{
				old[i][j] = birth[i][j];//舊培養(yǎng)基相當(dāng)于一個儲存容器,儲存上一天的培養(yǎng)基情況
				birth[i][j] = 2 * birth[i][j];//每個位置上的每個舊細(xì)菌生兩個崽,然后凋亡
			}
		for (i = 0;i < 9;i++)
			for (j = 0;j < 9;j++)
			{
				if (old[i][j] != 0)//如果舊培養(yǎng)基上某個位置有細(xì)菌,就在新培養(yǎng)基上它的周圍生出一圈崽兒(記得每個細(xì)菌各生一圈兒……)
				{
					birth[i - 1][j - 1] = birth[i - 1][j - 1] + old[i][j];
					birth[i - 1][j] = birth[i - 1][j] + old[i][j];
					birth[i - 1][j + 1] = birth[i - 1][j + 1] + old[i][j];
					birth[i][j - 1] = birth[i][j - 1] + old[i][j];
					birth[i][j + 1] = birth[i][j + 1] + old[i][j];
					birth[i + 1][j - 1] = birth[i + 1][j - 1] + old[i][j];
					birth[i + 1][j] = birth[i + 1][j] + old[i][j];
					birth[i + 1][j + 1] = birth[i + 1][j + 1] + old[i][j];
				}
			}
	}
	for (i = 0;i < 9;i++)
	{
		for (j = 0;j < 9;j++)
			printf("%d ", birth[i][j]);
		printf("\n");
	}
	return 0;
}

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • Visual?Studio?2019?Qt?QML?項目環(huán)境搭建常見問題處理

    Visual?Studio?2019?Qt?QML?項目環(huán)境搭建常見問題處理

    本文主要介紹了Visual?Studio?2019?Qt?QML?項目環(huán)境搭建常見問題處理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-03-03
  • 關(guān)于單片機(jī)按鍵問題性能提升總結(jié)

    關(guān)于單片機(jī)按鍵問題性能提升總結(jié)

    今天小編就為大家分享一篇關(guān)于關(guān)于單片機(jī)按鍵問題性能提升總結(jié),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • C++11中l(wèi)onglong超長整型和nullptr初始化空指針

    C++11中l(wèi)onglong超長整型和nullptr初始化空指針

    本文介紹?C++11?標(biāo)準(zhǔn)中新添加的?long?long?超長整型和?nullptr?初始化空指針,在?C++11?標(biāo)準(zhǔn)下,相比?NULL?和?0,使用?nullptr?初始化空指針可以令我們編寫的程序更加健壯,本文結(jié)合示例代碼給大家詳細(xì)講解,需要的朋友跟隨小編一起看看吧
    2022-12-12
  • 詳解C++中String類模擬實現(xiàn)以及深拷貝淺拷貝

    詳解C++中String類模擬實現(xiàn)以及深拷貝淺拷貝

    這篇文章主要介紹了詳解C++中String類模擬實現(xiàn)以及深拷貝淺拷貝的相關(guān)資料,希望通過本文能幫助到大家,讓大家實現(xiàn)這樣的方法,需要的朋友可以參考下
    2017-10-10
  • C語言fgetc和fputc函數(shù)用法詳解(以字符形式讀寫文件)

    C語言fgetc和fputc函數(shù)用法詳解(以字符形式讀寫文件)

    這篇文章主要介紹了C語言fgetc和fputc函數(shù)用法詳解(以字符形式讀寫文件),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • C語言編程數(shù)據(jù)在內(nèi)存中的存儲詳解

    C語言編程數(shù)據(jù)在內(nèi)存中的存儲詳解

    本篇文章是C語言編程篇,主要為大家介紹C語言編程中數(shù)據(jù)在內(nèi)存中存儲解析,有需要的朋友可以借鑒參考下,希望可以有所幫助
    2021-09-09
  • c++ 形狀類Shape(派生出圓類Circle和矩形類Rectangle)

    c++ 形狀類Shape(派生出圓類Circle和矩形類Rectangle)

    通過C++方式,建立一個形狀類Shape作為基類,派生出圓類Circle和矩形類Rectangle 求出面積并獲取相關(guān)信息
    2020-11-11
  • C語言實現(xiàn)控制臺五子棋小游戲

    C語言實現(xiàn)控制臺五子棋小游戲

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)控制臺五子棋小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C++淺析函數(shù)重載是什么

    C++淺析函數(shù)重載是什么

    C++?允許多個函數(shù)擁有相同的名字,只要它們的參數(shù)列表不同就可以,這就是函數(shù)的重載(Function?Overloading),借助重載,一個函數(shù)名可以有多種用途
    2022-08-08
  • C++中COM組件初始化方法實例分析

    C++中COM組件初始化方法實例分析

    這篇文章主要介紹了C++中COM組件初始化方法,涉及C++中COM組件的使用技巧,需要的朋友可以參考下
    2015-05-05

最新評論

镇巴县| 红安县| 永昌县| 望江县| 治多县| 财经| 河南省| 沙洋县| 浏阳市| 比如县| 乾安县| 岢岚县| 陵水| 乌拉特中旗| 大田县| 逊克县| 海淀区| 江达县| 云梦县| 长海县| 星座| 久治县| 阿图什市| 恭城| 西和县| 平和县| 滦平县| 抚州市| 深水埗区| 阳春市| 涿鹿县| 龙陵县| 福建省| 肇东市| 兴业县| 寿阳县| 远安县| 新营市| 哈尔滨市| 囊谦县| 玉田县|