国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【藍(lán)橋杯】1434:回文數(shù)字—>三種判斷回文的方法

這篇具有很好參考價(jià)值的文章主要介紹了【藍(lán)橋杯】1434:回文數(shù)字—>三種判斷回文的方法。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言:

通過對(duì)藍(lán)橋杯真題回文數(shù)字的講解,引出關(guān)于三種回文判斷的方式:數(shù)組或字符串、直接反轉(zhuǎn)數(shù)字。


目錄

前言:

藍(lán)橋杯題目:回文數(shù)字

題目分析:

一、數(shù)組或字符串判斷回文:

二、利用棧的數(shù)據(jù)結(jié)構(gòu)判斷回文:

三、直接反轉(zhuǎn)數(shù)字


藍(lán)橋杯題目:回文數(shù)字

觀察數(shù)字:12321,123321? 都有一個(gè)共同的特征,無論從左到右讀還是從右向左讀,都是相同的。這樣的數(shù)字叫做:回文數(shù)字。
本題要求你找到一些5位或6位的十進(jìn)制數(shù)字。滿足如下要求:
該數(shù)字的各個(gè)數(shù)位之和等于輸入的整數(shù)。


題目分析:

根據(jù)題目要求,我們了解到我們需要進(jìn)行判斷操作的數(shù)的范圍是五位數(shù)到六位數(shù),即10000到999999,也就是我們首先要生成這些數(shù)字,其次這些數(shù)字需要滿足兩個(gè)條件。

第一個(gè)條件:個(gè)數(shù)位之和等于我們輸入的整數(shù);

第二個(gè)條件:回文。

所以我們根據(jù)以上分析進(jìn)行代碼實(shí)現(xiàn)。

一、數(shù)組或字符串判斷回文:

int main()
{
	int n = 0;
	scanf("%d", &n);
	int num = 0;
	//生成數(shù)字
	for (num = 10000; num <= 999999; num++)
	{
		int tmp = num;
		int sum = 0;
		int count = 0;
		//計(jì)算位數(shù)之和
		while(tmp)
		{
			sum += tmp % 10;
			tmp /= 10;
			//統(tǒng)計(jì)位數(shù)
			count++;
		}
		//判斷回文
		int arr[6] = { 0 };
		tmp = num;
		int i = 0;
		for (i = 0; i < count; i++)
		{
			arr[i] = tmp % 10;
			tmp /= 10;
		}
		int flag = 1;
		for (i = 0; i < count / 2; i++)
		{
			if (arr[i] != arr[count - i - 1])
				flag = 0;
		}
		//判斷是否同時(shí)滿足兩個(gè)條件,并輸出
		if (sum == n && flag==1)
		{
			printf("%d\n", num);
		}
	}
	return 0;
}

二、利用棧的數(shù)據(jù)結(jié)構(gòu)判斷回文:

我們知道棧的特性是先入后出,即先進(jìn)入的元素后出,那么判斷回文恰恰可以利用棧這一特性,將前面一般的元素入棧后,再依次出棧與后面一半的元素相比較,如果相同,那么就說明這串字符為回文字符。

代碼如下:

int main()
{
	int n = 0;
	scanf("%d", &n);
	int num = 0;
	//生成數(shù)字
	for (num = 10000; num <= 999999; num++)
	{
		int tmp = num;
		int sum = 0;
		int count = 0;

		//計(jì)算位數(shù)之和
		while (tmp)
		{
			sum += tmp % 10;
			tmp = tmp / 10;
			//統(tǒng)計(jì)位數(shù)
			count++;
		}
		int flag = 1;
		//判斷回文
		SeqStack s;
		//將前一半字符入棧
		for (i = 0; i < count / 2; i++)
		{
			Push(s, str[i]);
		}
		if (count % 2) // 若輸入字符為奇數(shù)個(gè)時(shí)自動(dòng)跳過中間的字符
			i++;
		while (!EmptyStack(s))
		{
			Pop(s, e);
			if (e!= str[i])
			{
				flag = 0;
				break;
			}
			else
				i++;
		}
		//判斷是否同時(shí)滿足兩個(gè)條件,并輸出
		if (sum == n && flag == 1)
		{
			printf("%d\n", num);
		}
	}
	return 0;
}

三、直接反轉(zhuǎn)數(shù)字:

直接反轉(zhuǎn)數(shù)字的方法是一種很巧妙的方法,他的思想可以理解為取某個(gè)整數(shù)每一位的逆過程,我們知道想要的到某個(gè)整數(shù)的每一位只需要每次%10,再/10即可,那么直接反轉(zhuǎn)數(shù)字的方法就是該過程的逆過程,代碼實(shí)現(xiàn)也非常簡單。

int main()
{
	int n;
	int flag = 0;
	scanf("%d", &n);
	int num = 0;
	for (num = 10000;  num <=999999;  num++)
	{
		//創(chuàng)建臨時(shí)變量tmp,循環(huán)中利用tmp進(jìn)行操作,不會(huì)影響num的值
		int tmp = num;
		int t = 0;
		int sum = 0;
		while (tmp)
		{
			//這里t計(jì)算得到的值就是該串字符反轉(zhuǎn)后的值
			t = t * 10 + tmp % 10;
			sum += tmp % 10;
			tmp /= 10;
		}
		if (t == num && sum == n)
		{
			flag = 1;
			printf("%d\n", num);
		}
	}
	return 0;
}

這個(gè)代碼最重要的思想就是? ?t = t * 10 + tmp % 10;

掌握后在進(jìn)行回文判斷上十分簡單,并且這種方式的時(shí)間復(fù)雜度與空間復(fù)雜度相較前兩種方式都有了顯著提高。文章來源地址http://www.zghlxwxcb.cn/news/detail-488758.html

到了這里,關(guān)于【藍(lán)橋杯】1434:回文數(shù)字—>三種判斷回文的方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 使用java判斷質(zhì)數(shù)的三種方法

    方法一:質(zhì)數(shù)只能被1和它本身整除 ?方法二:一個(gè)數(shù)總能寫成“n = a * b”的形式,a和b之間一定有一個(gè)數(shù)不大于n/2 ?方法三:每一個(gè)整數(shù)都可以看做由兩個(gè)數(shù)相乘得到,且每個(gè)乘數(shù)不大于原整數(shù)的平方根 ?

    2024年02月13日
    瀏覽(19)
  • C語言素?cái)?shù)(質(zhì)數(shù))判斷的三種方法

    本文介紹了判斷素?cái)?shù)的3種方法,從素?cái)?shù)的概念分析,確定找到素?cái)?shù)的幾個(gè)必要條件,設(shè)計(jì)思路,并將代碼進(jìn)行優(yōu)化。此外,還使用自定義函數(shù)的形式將同樣的思路進(jìn)行實(shí)現(xiàn)。 素?cái)?shù),就是僅能被自身和1整除的數(shù)字。 首先我們可以提取出判斷素?cái)?shù)的三個(gè)基本條件: 素?cái)?shù)是整數(shù)

    2024年02月04日
    瀏覽(18)
  • java中判斷對(duì)象類型的三種方法

    instanceof instanceof 是 Java 中的一個(gè),用于判斷一個(gè)對(duì)象是否是指定類型或其子類型的實(shí)例。它的使用格式為: 其中, 對(duì)象 是待判斷的對(duì)象, 類型 是要判斷的類型。 instanceof 的返回值是一個(gè)布爾值,如果對(duì)象是指定類型或其子類型的實(shí)例,則返回 true ,否則返回

    2024年02月03日
    瀏覽(22)
  • 【C語言】判斷字符類型的三種方法

    【C語言】判斷字符類型的三種方法

    ?? 個(gè)人主頁 :修修修也 ?? 所屬專欄 :C語言 ?? 操作環(huán)境 : Visual Studio 2022 目錄 一.字符的類型分類 1.ASCII的定義: ?2.ASCII的產(chǎn)生原因是: 3.ASCII的內(nèi)容: 二.字符類型判斷相關(guān)庫函數(shù) 1.isdigit(),用于判斷字符是否為數(shù)字。 2. isalpha(),用于判斷字符是否為字母。 3. isalnum(),用

    2024年02月06日
    瀏覽(17)
  • 藍(lán)橋杯之素?cái)?shù)及相關(guān)判斷方法(看這一篇就夠了)

    藍(lán)橋杯之素?cái)?shù)及相關(guān)判斷方法(看這一篇就夠了)

    目錄 一、素?cái)?shù)及相關(guān)概念 ?1、素?cái)?shù)的性質(zhì) ?2、有關(guān)素?cái)?shù)的猜想 ?二、素?cái)?shù)的判斷方法 ?1、根據(jù)性質(zhì)去判斷 ?2、改進(jìn)1方法(縮小比較范圍√n) 3、再次分析素?cái)?shù)的特點(diǎn),得出規(guī)律 問題:枚舉n以內(nèi)所有素?cái)?shù) ?4、埃氏篩法(埃拉托斯特尼篩法) 5、歐拉篩法(埃氏篩法的優(yōu)化

    2023年04月15日
    瀏覽(19)
  • Python中可以用三種方法判斷文件是否存在

    Python中可以用三種方法判斷文件是否存在

    前言 大家早好、午好、晚好吖 ? ~歡迎光臨本文章 通常在讀寫文件之前,需要判斷文件或目錄是否存在,不然某些處理方法可能會(huì)使程序出錯(cuò)。 所以最好在做任何操作之前,先判斷文件是否存在。 這里將介紹三種判斷文件或文件夾是否存在的方法,分別使用os模塊、Try語句

    2024年02月02日
    瀏覽(18)
  • Python 判斷列表里是否有重復(fù)元素的三種方法

    一、用 set 方法去重后與原列表長度比較 二、用 append 的方式把原列表中的元素添加到一個(gè)新列表,確保新列表里不存在重復(fù)的元素,然后比較兩個(gè)列表 三、用 fromkeys 的方法創(chuàng)建一個(gè)字典,因?yàn)樽值涞逆I會(huì)自動(dòng)去重,所以可以比較字典和原列表的長度,跟方法一很像

    2024年02月11日
    瀏覽(24)
  • C語言判斷一個(gè)數(shù)是否為素?cái)?shù)的三種方法(詳細(xì))

    ? ? ? ???今天我們來使用C語言來實(shí)現(xiàn)判斷一個(gè)數(shù)是否為素?cái)?shù),首先我們需要了解到素?cái)?shù)的概念,素?cái)?shù)就是只能被1和它本身整除的數(shù)。 ??? ? ? ? ? 這是第一種代碼,我們來分析一下,首先創(chuàng)建變量i和n,這里我們i用于循環(huán),n用來存放我們輸入的數(shù)字。之后我們設(shè)置一個(gè)

    2024年04月25日
    瀏覽(21)
  • C語言--輸入任意一個(gè)數(shù),判斷它的奇偶性(三種方法)

    C語言--輸入任意一個(gè)數(shù),判斷它的奇偶性(三種方法)

    C語言學(xué)習(xí)分享,轉(zhuǎn)載請(qǐng)注明出處。 求余 -- %2。任意一個(gè)數(shù)對(duì)2求余,余數(shù)=0是偶數(shù),余數(shù)=1是奇數(shù)。 運(yùn)行結(jié)果: 一個(gè)數(shù)按位與上1 -- 1。任意一個(gè)數(shù)與上1結(jié)果=0是偶數(shù),=1是奇數(shù)。 運(yùn)行結(jié)果: 判斷一個(gè)數(shù)/2*2之后是否等于它本身 -- num/2*2 。任意一個(gè)數(shù)/2*2之后再與它自身進(jìn)行比較

    2024年02月01日
    瀏覽(20)
  • 【Python】判斷素?cái)?shù)的三種方法以及for-else語句的介紹

    【Python】判斷素?cái)?shù)的三種方法以及for-else語句的介紹

    ? 輸入一個(gè)數(shù),如果是素?cái)?shù)就輸出\\\"Yes\\\",否則輸出\\\"No\\\" 自定義函數(shù) is_prime() ,首先排除1,然后再對(duì)該數(shù)之前的數(shù)進(jìn)行枚舉,當(dāng)遇到能被當(dāng)前的數(shù)整除時(shí)返回False,若沒有數(shù)能將其整除意味著這個(gè)數(shù)是素?cái)?shù),返回True。然后對(duì)返回的結(jié)果進(jìn)行判斷從而輸出\\\"Yes\\\"或\\\"No\\\" 當(dāng)然,我們可以

    2024年02月04日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包