亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C++實(shí)現(xiàn)水仙花數(shù)判斷實(shí)例

 更新時(shí)間:2022年01月05日 14:20:13   作者:Alkaid#3529  
大家好,本篇文章主要講的是C++實(shí)現(xiàn)水仙花數(shù)判斷實(shí)例,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽

前言

水仙花數(shù)(Narcissistic number)也被稱為超完全數(shù)字不變數(shù)(pluperfect digital invariant, PPDI)或阿姆斯特朗數(shù)(Armstrong number),是指一個(gè) 3 位數(shù),它的每個(gè)位上的數(shù)字的 3次冪之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153。

找出指定范圍內(nèi)的所有水仙花數(shù)需要我們利用循環(huán)的相關(guān)知識(shí)解決,本文將從思路分析入手,帶大家逐步簡(jiǎn)化問(wèn)題,直到代碼實(shí)現(xiàn)。

一、思路分析

如果一個(gè)數(shù)是水仙花數(shù),那么它的每個(gè)位上的數(shù)字的 3次冪之和等于它本身,因此我們需要分離出它各個(gè)位置上的數(shù)字,并對(duì)他們的三次冪求和,與原數(shù)相等即可。

問(wèn)題就簡(jiǎn)化為了分離各個(gè)位置上的數(shù),對(duì)于百位,我們可以知道,因?yàn)閿?shù)據(jù)類型為 int 整型,因此原數(shù)除以100即為百位數(shù);對(duì)于十位,將原數(shù)模100后,除以10即可;對(duì)于個(gè)位,模10即可獲得。

到此,整體思路已經(jīng)明確,我們將其轉(zhuǎn)化為代碼。

二、代碼實(shí)現(xiàn)

1.水仙花函數(shù)

我們首先來(lái)寫(xiě)一個(gè)函數(shù),這個(gè)函數(shù)的功能是判斷一個(gè)數(shù)是否為水仙花數(shù),如果是,返回真;否則,返回假。

代碼如下(示例):

/* Alkaid#3529 */

bool narcissus(int a)
{
	int sum = 0; // 記錄最終求和結(jié)果

	int x1 = a / 100; // 原數(shù)除以100即為百位
	int x2 = a % 100 / 10; // 原數(shù)模100后,除以10就是十位數(shù)
	int x3 = a % 10; // 模10的結(jié)果就是個(gè)位數(shù)

	// 對(duì)得到的各位數(shù)的三次冪求和
	sum = x1 * x1 * x1 + x2 * x2 * x2 + x3 * x3 * x3;

	// 判斷求和結(jié)果與原數(shù)是否相等
	if (sum == a)
		return 1;
	else
		return 0;
}

2.完整代碼

在現(xiàn)有函數(shù)基礎(chǔ)上,我們只需對(duì)所有三位數(shù)循環(huán)判斷,若為真,輸出;否則,跳過(guò)即可。

代碼如下(示例):

/* Alkaid#3529 */

#include<iostream>
using namespace std;

bool narcissus(int a);

int main()
{
	cout << "水仙花數(shù)有:  ";

	// 從100開(kāi)始,逐個(gè)檢查所有三位數(shù)
	for (int i = 100; i < 1000; i++)
	{
		if (narcissus(i))
			cout << i << "  ";
	}

	return 0;
}

bool narcissus(int a)
{
	int sum = 0; // 記錄最終求和結(jié)果

	int x1 = a / 100; // 原數(shù)除以100即為百位
	int x2 = a % 100 / 10; // 原數(shù)模100后,除以10就是十位數(shù)
	int x3 = a % 10; // 模10的結(jié)果就是個(gè)位數(shù)

	// 對(duì)得到的各位數(shù)的三次冪求和
	sum = x1 * x1 * x1 + x2 * x2 * x2 + x3 * x3 * x3;

	// 判斷求和結(jié)果與原數(shù)是否相等
	if (sum == a)
		return 1;
	else
		return 0;
}
我們運(yùn)行一下程序,看看結(jié)果如何。

在這里插入圖片描述

經(jīng)檢驗(yàn),代碼運(yùn)行無(wú)誤,結(jié)果正確,可以放心復(fù)制粘貼。

總結(jié)

水仙花數(shù)的判斷是常見(jiàn)的基礎(chǔ)題型,除此之外,后續(xù)會(huì)陸續(xù)推出 C++ 的進(jìn)階題目,感興趣且想學(xué)習(xí)的話不妨點(diǎn)點(diǎn)關(guān)注,你的點(diǎn)贊是我更新的最大動(dòng)力哦!

到此這篇關(guān)于C++實(shí)現(xiàn)水仙花數(shù)判斷實(shí)例的文章就介紹到這了,更多相關(guān)C++水仙花數(shù)判斷內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++中const的用法詳細(xì)總結(jié)

    C++中const的用法詳細(xì)總結(jié)

    以下是對(duì)C++中const的用法進(jìn)行了詳細(xì)的總結(jié)分析,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2013-09-09
  • 基于OpenCV自定義色條實(shí)現(xiàn)灰度圖上色功能代碼

    基于OpenCV自定義色條實(shí)現(xiàn)灰度圖上色功能代碼

    今天通過(guò)本文給大家分享基于OpenCV自定義色條實(shí)現(xiàn)灰度圖上色功能代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-11-11
  • 解析C++編程中virtual聲明的虛函數(shù)以及單個(gè)繼承

    解析C++編程中virtual聲明的虛函數(shù)以及單個(gè)繼承

    這篇文章主要介紹了C++編程中virtual聲明的虛函數(shù)以及單個(gè)繼承,剖析虛函數(shù)和單個(gè)基類所能夠繼承的成員,要的朋友可以參考下
    2016-01-01
  • C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)與算法之鏈表(一)

    C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)與算法之鏈表(一)

    鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)方式。鏈表的內(nèi)存是不連續(xù)的,前一個(gè)元素存儲(chǔ)地址的下一個(gè)地址中存儲(chǔ)的不一定是下一個(gè)元素。小編今天就將帶大家深入了解一下鏈表,快來(lái)學(xué)習(xí)吧
    2021-12-12
  • C語(yǔ)言進(jìn)階教程之字符串&內(nèi)存函數(shù)

    C語(yǔ)言進(jìn)階教程之字符串&內(nèi)存函數(shù)

    對(duì)于字符,在計(jì)算機(jī)內(nèi)部都是用數(shù)字(字符編碼)來(lái)表示的,而字符串是“字符連續(xù)排列”的一種表現(xiàn),這篇文章主要給大家介紹了關(guān)于C語(yǔ)言進(jìn)階教程之字符串&內(nèi)存函數(shù)的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • c++?創(chuàng)建型設(shè)計(jì)模式工廠方法Factory?Method示例詳解

    c++?創(chuàng)建型設(shè)計(jì)模式工廠方法Factory?Method示例詳解

    這篇文章主要為大家介紹了c++?創(chuàng)建型設(shè)計(jì)模式工廠方法Factory?Method示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • 配置CLion管理Qt項(xiàng)目國(guó)際化支持的方法

    配置CLion管理Qt項(xiàng)目國(guó)際化支持的方法

    這篇文章主要介紹了配置CLion管理Qt項(xiàng)目國(guó)際化支持的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • c語(yǔ)言double類型默認(rèn)輸出小數(shù)幾位

    c語(yǔ)言double類型默認(rèn)輸出小數(shù)幾位

    在本篇文章里小編給大家分享的是關(guān)于c語(yǔ)言double類型默認(rèn)輸出小數(shù)幾位的相關(guān)知識(shí)點(diǎn),需要的朋友們可以學(xué)習(xí)下。
    2020-04-04
  • 數(shù)據(jù)結(jié)構(gòu)之帶頭結(jié)點(diǎn)的單鏈表

    數(shù)據(jù)結(jié)構(gòu)之帶頭結(jié)點(diǎn)的單鏈表

    單鏈表是一種鏈?zhǔn)酱嫒〉臄?shù)據(jù)結(jié)構(gòu),用一組地址任意的存儲(chǔ)單元存放線性表中的數(shù)據(jù)元素。鏈表中的數(shù)據(jù)是以結(jié)點(diǎn)來(lái)表示的,每個(gè)結(jié)點(diǎn)的構(gòu)成:數(shù)據(jù)域(數(shù)據(jù)元素的映象)?+?指針域(指示后繼元素存儲(chǔ)位置),元素就是存儲(chǔ)數(shù)據(jù)的存儲(chǔ)單元,指針就是連接每個(gè)結(jié)點(diǎn)的地址數(shù)據(jù)
    2023-07-07
  • 詳解設(shè)計(jì)模式中的中介者模式在C++編程中的運(yùn)用

    詳解設(shè)計(jì)模式中的中介者模式在C++編程中的運(yùn)用

    這篇文章主要介紹了設(shè)計(jì)模式中的中介者模式在C++編程中的運(yùn)用,中介者模式將對(duì)象間的通信封裝到一個(gè)類中,將多對(duì)多的通信轉(zhuǎn)化為一對(duì)多的通信,降低了系統(tǒng)的復(fù)雜性,需要的朋友可以參考下
    2016-03-03

最新評(píng)論