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

利用c++判斷水仙花數(shù)并輸出示例代碼

 更新時(shí)間:2025年12月13日 11:23:07   作者:ULTRA??  
水仙花數(shù)是指一個(gè)三位數(shù),其各位數(shù)字的立方和恰好等于該數(shù)本身,這篇文章主要介紹了利用c++判斷水仙花數(shù)并輸出的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

以下是使用C++實(shí)現(xiàn)的相同邏輯代碼:

#include <iostream>
#include <vector>
#include <string>
#include <cmath>

// 判斷一個(gè)數(shù)是否為水仙花數(shù)
bool isNarcissistic(int n) {
    std::string numStr = std::to_string(n);
    int numDigits = numStr.length();
    int sum = 0;
    
    // 遍歷每一位數(shù)字
    for (int i = 0; i < numDigits; i++) {
        // 將字符數(shù)字轉(zhuǎn)換為整數(shù)
        int digit = numStr[i] - '0';
        // 計(jì)算該位數(shù)字的 n 次冪并累加
        sum += static_cast<int>(std::pow(digit, numDigits));
    }
    
    // 判斷總和是否等于原數(shù)
    return sum == n;
}

// 查找指定范圍內(nèi)的水仙花數(shù)
std::vector<int> findNarcissisticNumbers(int min, int max) {
    std::vector<int> results;
    for (int i = min; i <= max; i++) {
        if (isNarcissistic(i)) {
            results.push_back(i);
        }
    }
    return results;
}

int main() {
    // 輸出所有3位水仙花數(shù)(100-999)
    std::vector<int> narcissisticNumbers = findNarcissisticNumbers(100, 999);
    
    // 格式化輸出
    if (!narcissisticNumbers.empty()) {
        std::cout << "3位水仙花數(shù)有:" << std::endl;
        for (int num : narcissisticNumbers) {
            std::cout << num << std::endl;
        }
    } else {
        std::cout << "該范圍內(nèi)沒(méi)有水仙花數(shù)" << std::endl;
    }
    
    return 0;
}

以下是使用純數(shù)學(xué)運(yùn)算(不用字符串轉(zhuǎn)換)的替代版本:

#include <iostream>
#include <vector>

// 判斷一個(gè)數(shù)是否為水仙花數(shù)(純數(shù)學(xué)方法)
bool isNarcissistic(int n) {
    int original = n;
    int numDigits = 0;
    int temp = n;
    
    // 計(jì)算位數(shù)
    while (temp > 0) {
        numDigits++;
        temp /= 10;
    }
    
    int sum = 0;
    temp = original;
    
    // 遍歷每一位數(shù)字
    while (temp > 0) {
        int digit = temp % 10;
        // 計(jì)算digit的numDigits次冪
        int power = 1;
        for (int i = 0; i < numDigits; i++) {
            power *= digit;
        }
        sum += power;
        temp /= 10;
    }
    
    // 判斷總和是否等于原數(shù)
    return sum == original;
}

// 查找指定范圍內(nèi)的水仙花數(shù)
std::vector<int> findNarcissisticNumbers(int min, int max) {
    std::vector<int> results;
    for (int i = min; i <= max; i++) {
        if (isNarcissistic(i)) {
            results.push_back(i);
        }
    }
    return results;
}

int main() {
    // 輸出所有3位水仙花數(shù)(100-999)
    std::vector<int> narcissisticNumbers = findNarcissisticNumbers(100, 999);
    
    // 格式化輸出
    if (!narcissisticNumbers.empty()) {
        std::cout << "3位水仙花數(shù)有:" << std::endl;
        for (int num : narcissisticNumbers) {
            std::cout << num << std::endl;
        }
    } else {
        std::cout << "該范圍內(nèi)沒(méi)有水仙花數(shù)" << std::endl;
    }
    
    return 0;
}

兩個(gè)版本的功能相同,都能正確找到153、370、371、407這4個(gè)3位水仙花數(shù)。第一個(gè)版本更接近原Lua代碼的邏輯,使用字符串處理;第二個(gè)版本使用純數(shù)學(xué)運(yùn)算,在某些情況下性能更好。

總結(jié)

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

相關(guān)文章

  • 利用Matlab復(fù)刻兩款粒子愛(ài)心動(dòng)畫(huà)效果

    利用Matlab復(fù)刻兩款粒子愛(ài)心動(dòng)畫(huà)效果

    最近電視劇《點(diǎn)燃我,溫暖你》大火,蹭一下熱度,發(fā)一下MATLAB畫(huà)愛(ài)心的代碼,寫(xiě)的比較隨意,大家可以自行調(diào)整粒子大小和顏色啥的
    2022-11-11
  • 帶你了解C++this指針的用法及其深究

    帶你了解C++this指針的用法及其深究

    這篇文章主要介紹了C++中this指針的用法,對(duì)初學(xué)者而言是非常重要的概念,必須加以熟練掌握,需要的朋友可以參考下,希望能給你帶來(lái)幫助
    2021-08-08
  • C++快速排序超詳細(xì)講解

    C++快速排序超詳細(xì)講解

    快速排序是一種高效的排序算法,通過(guò)分治法將數(shù)組劃分為兩部分,遞歸排序,直到整個(gè)數(shù)組有序,通過(guò)代碼解析和示例,詳細(xì)解釋了快速排序的工作原理和實(shí)現(xiàn)過(guò)程,需要的朋友可以參考下
    2025-03-03
  • c語(yǔ)言?數(shù)據(jù)存儲(chǔ)與原碼?反碼?補(bǔ)碼詳細(xì)解析

    c語(yǔ)言?數(shù)據(jù)存儲(chǔ)與原碼?反碼?補(bǔ)碼詳細(xì)解析

    不知道你是否和我一樣好奇,學(xué)習(xí)編程語(yǔ)言的同時(shí)想,各個(gè)數(shù)據(jù)類型是怎樣在我們的內(nèi)存中儲(chǔ)存的呢,如果你仔細(xì)深入了解的話,你會(huì)了解其中的樂(lè)趣,了解科學(xué)家們的偉大,了解c語(yǔ)言
    2022-02-02
  • C++實(shí)現(xiàn)Huffman的編解碼

    C++實(shí)現(xiàn)Huffman的編解碼

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)Huffman的編解碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C語(yǔ)言實(shí)現(xiàn)兩個(gè)矩陣相乘

    C語(yǔ)言實(shí)現(xiàn)兩個(gè)矩陣相乘

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)兩個(gè)矩陣相乘的程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • 為什么獲取環(huán)境變量getenv小心有坑

    為什么獲取環(huán)境變量getenv小心有坑

    這篇文章主要介紹了獲取環(huán)境變量getenv小心有坑問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • C++中MFC Tab Control控件的使用詳解

    C++中MFC Tab Control控件的使用詳解

    這篇文章主要介紹了C++中MFC Tab Control控件的使用詳解的相關(guān)資料,需要的朋友可以參考下
    2015-06-06
  • 深入了解C++中基于模板的類型擦除

    深入了解C++中基于模板的類型擦除

    在C\C++中主要有三種類型擦除的方式:基于void*的類型擦除、面向?qū)ο蟮念愋筒脸突谀0宓念愋筒脸?本文主要為大家詳細(xì)介紹基于模板的類型擦除的相關(guān)知識(shí),需要的可以了解下
    2023-12-12
  • C語(yǔ)言實(shí)現(xiàn)個(gè)人財(cái)務(wù)管理

    C語(yǔ)言實(shí)現(xiàn)個(gè)人財(cái)務(wù)管理

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)個(gè)人財(cái)務(wù)管理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11

最新評(píng)論

清镇市| 湘潭县| 漯河市| 孙吴县| 钟祥市| 博乐市| 张家口市| 尚志市| 容城县| 德化县| 磐石市| 汉阴县| 藁城市| 渝中区| 壤塘县| 江西省| 伊吾县| 安丘市| 彰化县| 横峰县| 桃园县| 南康市| 喀什市| 栖霞市| 墨竹工卡县| 新晃| 永康市| 日土县| 松潘县| 科尔| 沛县| 即墨市| 曲松县| 新邵县| 盐池县| 江孜县| 青龙| 太原市| 林西县| 诏安县| 上饶县|