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

C語言算法練習(xí)之抓交通肇事犯

 更新時間:2022年03月23日 17:08:32   作者:飛向星的客機  
這篇文章主要該大家分享C語言算法抓交通肇事犯的練習(xí),文章主要通過描述抓交通肇事犯得問題然后確定程序框架將結(jié)果運算出來,下面來看詳細內(nèi)容吧,需要的朋友可以參考一下

1. 問題描述

一輛卡車違反交通規(guī)則,撞人后逃跑。現(xiàn)場有三人目擊該事件,但都沒有記住車號,只記下車號的一些特征。

甲說:牌照的前兩位數(shù)字是相同的;

乙說:牌照的后兩位數(shù)字是相同的,但與前兩位不同;

丙是數(shù)學(xué)家,他說:四位的車號剛好是一個整數(shù)的平方。

請根據(jù)以上線索求出車號。

2. 題目分析

按照題目的要求造出一個前兩位數(shù)相同、后兩位數(shù)相同且相互間又不同的 4 位整數(shù),然后判斷該整數(shù)是否是另一個整數(shù)的平方。

即求一個四位數(shù) a 1、a 2 、a 3、 a 4,滿足如下的條件:

3. 算法設(shè)計

該題目是數(shù)值計算問題,求解不定方程。

對于這種求解不定方程組的問題,一般采用窮舉循環(huán)。

首先設(shè)計雙層循環(huán)窮舉出所有由前兩位數(shù)和后兩位數(shù)組成的 4 位數(shù)車牌;

然后在最內(nèi)層窮舉出所有平方后值為 4 位數(shù)并且小于車牌號的數(shù);

最后判斷該數(shù)是否與車牌相等,若相等則打印車牌。

4. 流程框架

程序流程圖如下所示

?? 判斷車牌 k 是否為某個整數(shù)的平方

再次利用循環(huán)來實現(xiàn),循環(huán)變量 temp 求平方與車牌號 k 比較,如相等則找到車牌號。

優(yōu)化算法,temp 的初值應(yīng)該從 31 開始,因為小于30的數(shù)的平方小于 4 位數(shù),因此該層循環(huán)為最內(nèi)層循環(huán),對每一個車牌號均做如此操作。

5. 代碼實現(xiàn)

完整代碼??

int main()
{
	int i = 0;//i代表前兩位車牌號數(shù)字

	int j = 0;//j代表后兩位車牌號數(shù)字

	int k = 0;//k代表車牌號

	int temp = 0;

	for (i = 0; i <= 9; i++)
	{
		for (j = 0; j <= 9; j++)
		{
			//判斷前兩位數(shù)和后兩位數(shù)字是否不同
			if (i != j)
			{
				//組成4位車牌號
				k = 1000 * i + 100 * i + 10 * j + j;

				//判斷k是否是某個數(shù)的平方,若是則輸出k
				for (temp = 31; temp <= 99; temp++)
				{
					if (temp * temp == k)
					{
						printf("車牌號為:%d\n", k);
					}
				}
			}
		}
	}
	return 0;
}

運行結(jié)果??

6. 算法升級

針對上述程序如果已經(jīng)找到相應(yīng)的車牌號,請思考循環(huán)是否還需要繼續(xù)呢? 答案是肯定的,因為算法在設(shè)計窮舉循環(huán)的時候,并沒有在找到車牌的時候就退出循環(huán),而是繼續(xù)窮舉其他 i、j 的情況。 我們可以改進算法,設(shè)置一個 標(biāo)識變量,該變量初值為 0,一旦找到車牌號,則改變該標(biāo)識變量的值為 1,每次循環(huán)判斷一下標(biāo)識變量的值,如果值為 1 則退出所有循環(huán),這樣能有效地減少循環(huán)次數(shù)。

改進程序如下??

int main()
{
	int i = 0;//i代表前兩位車牌號數(shù)字

	int j = 0;//j代表后兩位車牌號數(shù)字

	int k = 0;//k代表車牌號

	int temp = 0;

	int flag = 0;//標(biāo)識符置為0

	for (i = 0; i <= 9; i++)
	{
		//判斷標(biāo)識變量
		if (flag) 
			break;

		for (j = 0; j <= 9; j++)
		{
			//判斷標(biāo)識變量
			if (flag)
				break;

			//判斷前兩位數(shù)和后兩位數(shù)字是否不同
			if (i != j)
			{
				//組成4位車牌號
				k = 1000 * i + 100 * i + 10 * j + j;

				//判斷k是否是某個數(shù)的平方,若是則輸出k
				for (temp = 31; temp <= 99; temp++)
				{
					if (temp * temp == k)
					{
						printf("車牌號為:%d\n", k);
						flag = 1; //找到車牌后,標(biāo)識變量置為1
						break; //強制退出到最內(nèi)層循環(huán)
					}
				}
			}
		}
	}
	return 0;
}

到此這篇關(guān)于C語言算法練習(xí)之抓交通肇事犯的文章就介紹到這了,更多相關(guān)C語言 抓交通肇事犯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

长宁县| 怀远县| 滨州市| 古浪县| 沛县| 望江县| 丰城市| 泰顺县| 江阴市| 东明县| 乌海市| 若羌县| 云浮市| 静安区| 景谷| 博乐市| 青神县| 孟州市| 霍州市| 筠连县| 太原市| 册亨县| 象州县| 苏尼特右旗| 西畴县| 渝中区| 嘉禾县| 托里县| 吉安市| 那曲县| 万年县| 靖远县| 万全县| 南昌县| 镇原县| 伊春市| 蕲春县| 丹凤县| 靖远县| 庄浪县| 顺平县|