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

C語(yǔ)言經(jīng)典算法實(shí)例7:完數(shù)

這篇具有很好參考價(jià)值的文章主要介紹了C語(yǔ)言經(jīng)典算法實(shí)例7:完數(shù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

完數(shù)c語(yǔ)言程序編寫,C語(yǔ)言,# C語(yǔ)言經(jīng)典算法實(shí)例,# C語(yǔ)言經(jīng)典實(shí)例,c語(yǔ)言,算法,wpf,C語(yǔ)言經(jīng)典實(shí)例,C語(yǔ)言經(jīng)典算法實(shí)例

一、問(wèn)題描述

1.1、什么是完數(shù)

完全數(shù)(Perfect number),又稱完美數(shù)或完備數(shù),是一些特殊的自然數(shù)。
它所有的真因子(即除了自身以外的約數(shù))的和(即因子函數(shù)),恰好等于它本身。
如果一個(gè)數(shù)恰好等于它的真因子之和,則稱該數(shù)為“完全數(shù)”。
第一個(gè)完全數(shù)是6,第二個(gè)完全數(shù)是28,第三個(gè)完全數(shù)是496,后面的完全數(shù)還有8128、33550336等等。

1.2、完數(shù)定義

如果一個(gè)數(shù)恰好等于它的真因子之和,則稱該數(shù)為“完全數(shù)” 。各個(gè)小于它的約數(shù)(真約數(shù),列出某數(shù)的約數(shù),去掉該數(shù)本身,剩下的就是它的真約數(shù))的和等于它本身的自然數(shù)叫做完全數(shù)(Perfect number),又稱完美數(shù)或完備數(shù)。
例如:
第一個(gè)完全數(shù)是6,它有約數(shù)1、2、3、6,除去它本身6外,其余3個(gè)數(shù)相加,1+2+3=6。
第二個(gè)完全數(shù)是28,它有約數(shù)1、2、4、7、14、28,除去它本身28外,其余5個(gè)數(shù)相加,1+2+4+7+14=28。
第三個(gè)完全數(shù)是496,有約數(shù)1、2、4、8、16、31、62、124、248、496,除去其本身496外,其余9個(gè)數(shù)相加,1+2+4+8+16+31+62+124+248=496。
后面的完全數(shù)還有8128、33550336等等。

1.3、本文的問(wèn)題描述

本文完數(shù)
問(wèn)題的描述
如下幾點(diǎn)所示

  1. 輸出 1-10000 以內(nèi)所有完數(shù)。
  2. 完數(shù)所有的真因子(即除了自身以外的約數(shù))的和恰好等于它本身。
  3. 六是一個(gè)完全數(shù),它有約數(shù)1、2、3、6,除去它本身6外,其余3個(gè)數(shù)相加,1+2+3=6。

二、算法實(shí)例編譯環(huán)境

本文C語(yǔ)言經(jīng)典算法實(shí)例的編譯環(huán)境,使用的是集成開(kāi)發(fā)環(huán)境:Visual Studio 2019
完數(shù)c語(yǔ)言程序編寫,C語(yǔ)言,# C語(yǔ)言經(jīng)典算法實(shí)例,# C語(yǔ)言經(jīng)典實(shí)例,c語(yǔ)言,算法,wpf,C語(yǔ)言經(jīng)典實(shí)例,C語(yǔ)言經(jīng)典算法實(shí)例

完數(shù)c語(yǔ)言程序編寫,C語(yǔ)言,# C語(yǔ)言經(jīng)典算法實(shí)例,# C語(yǔ)言經(jīng)典實(shí)例,c語(yǔ)言,算法,wpf,C語(yǔ)言經(jīng)典實(shí)例,C語(yǔ)言經(jīng)典算法實(shí)例

Visual Studio 2019官網(wǎng)鏈接如下

Visual Studio 2019官網(wǎng)鏈接
完數(shù)c語(yǔ)言程序編寫,C語(yǔ)言,# C語(yǔ)言經(jīng)典算法實(shí)例,# C語(yǔ)言經(jīng)典實(shí)例,c語(yǔ)言,算法,wpf,C語(yǔ)言經(jīng)典實(shí)例,C語(yǔ)言經(jīng)典算法實(shí)例

Visual Studio 2019集成的開(kāi)發(fā)環(huán)境的特點(diǎn)有

  1. Visual Studio 2019默認(rèn)安裝Live Share代碼協(xié)作服務(wù)。
  2. 幫助用戶快速編寫代碼的新歡迎窗口、改進(jìn)搜索功能、總體性能改進(jìn)。
  3. Visual Studio IntelliCode AI幫助。
  4. 更好的Python虛擬和Conda支持。
  5. 以及對(duì)包括WinForms和WPF在內(nèi)的.NET Core 3.0項(xiàng)目支持等

三、算法實(shí)例實(shí)現(xiàn)過(guò)程

3.1、包含頭文件

包含頭文件 代碼如下所示

#pragma once

// 包含頭文件
#include <stdio.h>
#include <stdlib.h>

  • 將要用到的C語(yǔ)言頭文件包含近年來(lái)。

3.2、聲明變量

聲明變量 代碼如下所示

    // 聲明變量
    int i, j, k; 
  • 聲明了變量 i, j, k 。

3.3、使用for循環(huán)來(lái)求1-10000的完數(shù)

使用for循環(huán)來(lái)求1-10000的完數(shù) 代碼如下所示

	/// <summary>
    /// 使用for循環(huán)來(lái)求1-10000的完數(shù)
    /// </summary>
    /// <returns>無(wú)</returns>
    for (i = 1; i < 10000; i++)
    {
        
    }
  • 使用for循環(huán)來(lái)求1-10000的完數(shù)。
  • 求1-10000的完數(shù)的具體實(shí)現(xiàn)如下幾個(gè)點(diǎn)所示。

3.4、變量賦值

變量賦值 代碼如下所示

 	// 變量賦值, 保證每次循環(huán)時(shí)sum的初值為0
    int sum = 0;
  • 變量賦值, 保證每次循環(huán)時(shí)sum的初值為0。
  • 變量賦值進(jìn)行完數(shù)的求解。
    完數(shù)c語(yǔ)言程序編寫,C語(yǔ)言,# C語(yǔ)言經(jīng)典算法實(shí)例,# C語(yǔ)言經(jīng)典實(shí)例,c語(yǔ)言,算法,wpf,C語(yǔ)言經(jīng)典實(shí)例,C語(yǔ)言經(jīng)典算法實(shí)例

3.5、判斷j是否為i的因子

判斷j是否為i的因子,代碼如下所示

		for (j = 1; j < i; j++)
        {
            /// <summary>
            /// // 判斷j是否為i的因子
            /// </summary>
            /// <returns></returns>
            if (i % j == 0)    
            {
                sum += j;
            }
        }
  • 判斷j是否為i的因子。

3.6、判斷因子數(shù)的和是否和原數(shù)相等

判斷因子數(shù)是否和原數(shù)相等 代碼如下所示

		/// <summary>
        /// 判斷因子數(shù)的和是否和原數(shù)相等
        /// </summary>
        /// <returns></returns>
        if (sum == i)
        {
            printf("%d 的因數(shù)是: ", i);

            for (k = 1; k < i; k++)
            {
                if (i % k == 0)
                {
                    printf("%d ", k);
                }
            }
            printf("\n");
        }
  • 判斷因子數(shù)的和是否和原數(shù)相等。
  • 如果因子數(shù)的和與原數(shù)相等,則這個(gè)數(shù)是完全數(shù)。
  • 如果因子數(shù)的和與原數(shù)不相等,則這個(gè)數(shù)不是完全數(shù)。

按F5進(jìn)行編譯,調(diào)試結(jié)果如下所示。

完數(shù)c語(yǔ)言程序編寫,C語(yǔ)言,# C語(yǔ)言經(jīng)典算法實(shí)例,# C語(yǔ)言經(jīng)典實(shí)例,c語(yǔ)言,算法,wpf,C語(yǔ)言經(jīng)典實(shí)例,C語(yǔ)言經(jīng)典算法實(shí)例

6 的因數(shù)是: 1 2 3
28 的因數(shù)是: 1 2 4 7 14
496 的因數(shù)是: 1 2 4 8 16 31 62 124 248
8128 的因數(shù)是: 1 2 4 8 16 32 64 127 254 508 1016 2032 4064

請(qǐng)按任意鍵繼續(xù). . .

  • 可以看到1-10000內(nèi)的完全數(shù)總共有四個(gè)。
  • 這幾個(gè)完數(shù)分別是
  • 6 的因數(shù)是: 1 2 3
  • 28 的因數(shù)是: 1 2 4 7 14
  • 496 的因數(shù)是: 1 2 4 8 16 31 62 124 248
  • 8128 的因數(shù)是: 1 2 4 8 16 32 64 127 254 508 1016 2032 4064

3.7、對(duì)求1-10000內(nèi)的完數(shù)功能進(jìn)行函數(shù)模塊化

  • 對(duì)求1-10000內(nèi)的完數(shù)采用函數(shù)編寫的方式。

對(duì)求1-10000內(nèi)的完數(shù)功能進(jìn)行函數(shù)模塊化 代碼如下所示。

3.7.1、對(duì)求1-10000內(nèi)的完數(shù)功能進(jìn)行函數(shù)模塊化的函數(shù)聲明

/// <summary>
/// 求完數(shù)的函數(shù)聲明
/// </summary>
void numberPerfect();
  • 聲明了求完數(shù)的函數(shù)。

3.7.2、對(duì)求1-10000內(nèi)的完數(shù)功能進(jìn)行函數(shù)模塊化的函數(shù)定義

對(duì)求1-10000內(nèi)的完數(shù)功能進(jìn)行函數(shù)模塊化的函數(shù)定義 代碼如下所示。

/// <summary>
/// 求完數(shù)的函數(shù)定義
/// </summary>
void numberPerfect()
{
    // 聲明變量
    int i, j, k;

    /// <summary>
    /// 使用for循環(huán)來(lái)求1-10000的完數(shù)
    /// </summary>
    /// <returns>無(wú)</returns>
    for (i = 1; i < 10000; i++)
    {
        // 變量賦值, 保證每次循環(huán)時(shí)sum的初值為0
        int sum = 0;

        for (j = 1; j < i; j++)
        {
            /// <summary>
            /// // 判斷j是否為i的因子
            /// </summary>
            /// <returns></returns>
            if (i % j == 0)
            {
                sum += j;
            }
        }

        /// <summary>
        /// 判斷因子數(shù)的和是否和原數(shù)相等
        /// </summary>
        /// <returns></returns>
        if (sum == i)
        {
            printf("%d 的因數(shù)是: ", i);

            for (k = 1; k < i; k++)
            {
                if (i % k == 0)
                {
                    printf("%d ", k);
                }
            }
            printf("\n");
        }
    }

    printf("\n");
}


  • 將上面幾點(diǎn)的功能加入到函數(shù)體即可,如上面的函數(shù)定義所示。
  • 實(shí)現(xiàn)了函數(shù)的功能:求1-10000內(nèi)的完數(shù)。
  • 使用for循環(huán)的方式。
  • 求1-10000之內(nèi)的完數(shù)。
  • 先求自身的因子數(shù)。
  • 在求因子數(shù)的和是否與自身相等。

3.7.3、主函數(shù)中調(diào)用求1-10000內(nèi)的完數(shù)功能的函數(shù)numberPerfect

主函數(shù)中調(diào)用求1-10000內(nèi)的完數(shù)功能的函數(shù)numberPerfect 代碼如下所示

 	// 調(diào)用求完數(shù)的函數(shù)
    numberPerfect();

按F5進(jìn)行編譯,調(diào)試結(jié)果如下所示。

完數(shù)c語(yǔ)言程序編寫,C語(yǔ)言,# C語(yǔ)言經(jīng)典算法實(shí)例,# C語(yǔ)言經(jīng)典實(shí)例,c語(yǔ)言,算法,wpf,C語(yǔ)言經(jīng)典實(shí)例,C語(yǔ)言經(jīng)典算法實(shí)例

四、經(jīng)典算法實(shí)例程序 完整代碼

經(jīng)典算法實(shí)例程序完整代碼如下所示

4.1、main.h文件

#pragma once

// 包含頭文件
#include <stdio.h>
#include <stdlib.h>


/// <summary>
/// 求完數(shù)的函數(shù)聲明
/// </summary>
void numberPerfect();


4.2、main.c文件

#define _CRT_SECURE_NO_WARNINGS

#include "Main.h"

/// <summary>
/// 主函數(shù)
/// </summary>
/// <returns>返回0</returns>
int main()
{
    system("color 3E");

    // 調(diào)用求完數(shù)的函數(shù)
    numberPerfect();

    system("pause");
    return 0;
}

/// <summary>
/// 求完數(shù)的函數(shù)定義
/// </summary>
void numberPerfect()
{
    // 聲明變量
    int i, j, k;

    /// <summary>
    /// 使用for循環(huán)來(lái)求1-10000的完數(shù)
    /// </summary>
    /// <returns>無(wú)</returns>
    for (i = 1; i < 10000; i++)
    {
        // 變量賦值, 保證每次循環(huán)時(shí)sum的初值為0
        int sum = 0;

        for (j = 1; j < i; j++)
        {
            /// <summary>
            /// // 判斷j是否為i的因子
            /// </summary>
            /// <returns></returns>
            if (i % j == 0)
            {
                sum += j;
            }
        }

        /// <summary>
        /// 判斷因子數(shù)的和是否和原數(shù)相等
        /// </summary>
        /// <returns></returns>
        if (sum == i)
        {
            printf("%d 的因數(shù)是: ", i);

            for (k = 1; k < i; k++)
            {
                if (i % k == 0)
                {
                    printf("%d ", k);
                }
            }
            printf("\n");
        }
    }

    printf("\n");
}





五、總結(jié)

本文的C語(yǔ)言經(jīng)典算法實(shí)例:完數(shù),要實(shí)現(xiàn)的目標(biāo)如下

  1. 輸出 1-10000 以內(nèi)所有完數(shù)。
  2. 完數(shù)所有的真因子(即除了自身以外的約數(shù))的和恰好等于它本身。
  3. 六是一個(gè)完全數(shù),它有約數(shù)1、2、3、6,除去它本身6外,其余3個(gè)數(shù)相加,1+2+3=6。

完數(shù)c語(yǔ)言程序編寫,C語(yǔ)言,# C語(yǔ)言經(jīng)典算法實(shí)例,# C語(yǔ)言經(jīng)典實(shí)例,c語(yǔ)言,算法,wpf,C語(yǔ)言經(jīng)典實(shí)例,C語(yǔ)言經(jīng)典算法實(shí)例

文到這里就結(jié)束啦。
希望本文的C語(yǔ)言經(jīng)典算法實(shí)例:完數(shù)。
能激發(fā)你對(duì)C語(yǔ)言以及算法學(xué)習(xí)的熱愛(ài)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-779575.html

  • 你的支持是對(duì)我最大的鼓勵(lì)。

到了這里,關(guān)于C語(yǔ)言經(jīng)典算法實(shí)例7:完數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(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)文章

  • C語(yǔ)言程序之經(jīng)典習(xí)題:while循環(huán)計(jì)算1到一百(100)所有數(shù)據(jù)之和

    C語(yǔ)言程序之經(jīng)典習(xí)題:while循環(huán)計(jì)算1到一百(100)所有數(shù)據(jù)之和 思路:首先是定義兩個(gè)變量sum和date,數(shù)字和1到100的和 引入while循環(huán) 目的是使循環(huán)到100就停止, 我們一步步來(lái),先來(lái)循環(huán)出1到100, 然后再來(lái)計(jì)算1到100的和---sum = sum + date;//累加0到100的和 然后在循環(huán)內(nèi)寫出累加

    2024年02月11日
    瀏覽(27)
  • C語(yǔ)言經(jīng)典算法實(shí)例4:判斷回文數(shù)

    C語(yǔ)言經(jīng)典算法實(shí)例4:判斷回文數(shù)

    判斷回文數(shù) 問(wèn)題的描述 如下幾點(diǎn)所示 “回文”是指正讀反讀都能讀通的句子,它是古今中外都有的一種修辭方式和文字游戲,如“我為人人,人人為我”等。 在數(shù)學(xué)中也有這樣一類數(shù)字有這樣的特征,成為回文數(shù)(palindrome number)。 設(shè)n是一任意自然數(shù),若將n的各位數(shù)字反

    2024年02月02日
    瀏覽(22)
  • C語(yǔ)言經(jīng)典算法實(shí)例3:數(shù)組元素排序

    C語(yǔ)言經(jīng)典算法實(shí)例3:數(shù)組元素排序

    求數(shù)組的排序 問(wèn)題的描述 如下幾點(diǎn)所示 使用rand()庫(kù)函數(shù)隨機(jī)生成10個(gè)1-100之間的數(shù)字。 聲明數(shù)組的大小為10。 隨機(jī)生成的10個(gè)數(shù)字賦值給數(shù)組。 給數(shù)組內(nèi)的元素由小到大排序。 本文C語(yǔ)言經(jīng)典算法實(shí)例的編譯環(huán)境,使用的是集成開(kāi)發(fā)環(huán)境:Visual Studio 2019 Visual Studio 2019官網(wǎng)鏈

    2024年02月01日
    瀏覽(24)
  • C語(yǔ)言經(jīng)典算法實(shí)例6:斐波那契數(shù)列

    C語(yǔ)言經(jīng)典算法實(shí)例6:斐波那契數(shù)列

    斐波那契數(shù)列指的是這樣一個(gè)數(shù)列:1,1,2,3,5,8,13,21,34,55,89… 這個(gè)數(shù)列從第3項(xiàng)開(kāi)始,每一項(xiàng)都等于前兩項(xiàng)之和。 斐波那契數(shù)列的定義者,是意大利數(shù)學(xué)家萊昂納多·斐波那契(Leonardo Fibonacci),生于公元1170年,卒于1250年,籍貫是比薩。 他被人稱作“比薩的萊昂

    2024年02月02日
    瀏覽(16)
  • 數(shù)據(jù)結(jié)構(gòu)與算法大作業(yè):走迷宮程序(C語(yǔ)言,DFS)(代碼以及思路)

    數(shù)據(jù)結(jié)構(gòu)與算法大作業(yè):走迷宮程序(C語(yǔ)言,DFS)(代碼以及思路)

    好家伙,寫大作業(yè),本篇為代碼的思路講解 ? 問(wèn)題描述: 以一個(gè) m * n 的長(zhǎng)方陣表示迷宮, 0和1分別表示迷宮的通路和障礙。 設(shè)計(jì)一個(gè)程序, 對(duì)任意設(shè)定的迷宮, 求出一條從入口到出口的通路, 或得出沒(méi)有通路的結(jié)論。 基本要求: (1) 實(shí)現(xiàn)一個(gè)以鏈表做存儲(chǔ)的棧類型,

    2024年02月03日
    瀏覽(23)
  • 【軟件設(shè)計(jì)師07】程序設(shè)計(jì)語(yǔ)言與語(yǔ)言處理程序基礎(chǔ)

    【軟件設(shè)計(jì)師07】程序設(shè)計(jì)語(yǔ)言與語(yǔ)言處理程序基礎(chǔ)

    編譯與解釋、文法、正規(guī)式、有限自動(dòng)機(jī)、表達(dá)式、傳值與傳址、多中程序語(yǔ)言特點(diǎn) (逐漸降低考察比例,很少考察) 概念 文法類型 語(yǔ)法推導(dǎo)樹(shù) 有限自動(dòng)機(jī) 與正規(guī)式(重點(diǎn)) 常見(jiàn)問(wèn)題:給一個(gè)串比如01、10、001等,看圖中起點(diǎn)到終點(diǎn)能否連起來(lái)得到這樣的串 正規(guī)式 是有限自

    2023年04月08日
    瀏覽(21)
  • 【C語(yǔ)言學(xué)習(xí)2——第一個(gè)C語(yǔ)言程序】

    【C語(yǔ)言學(xué)習(xí)2——第一個(gè)C語(yǔ)言程序】

    程序員之間有一個(gè)約定俗成的習(xí)慣,我們?cè)趯W(xué)習(xí)任何編程語(yǔ)言時(shí),所寫的第一個(gè)程序,就是在顯示屏上 打印一行字符“Hello World”。 而為什么會(huì)有這個(gè)習(xí)慣呢?這個(gè)習(xí)慣又是從什么時(shí)候開(kāi)始的呢? 其實(shí),先讓我們回顧一下C語(yǔ)言的歷史,就可以了解到這個(gè)習(xí)慣的出處。 1972年

    2023年04月13日
    瀏覽(24)
  • 【C語(yǔ)言】詳解計(jì)算機(jī)二級(jí)c語(yǔ)言程序題

    【C語(yǔ)言】詳解計(jì)算機(jī)二級(jí)c語(yǔ)言程序題

    最近計(jì)算機(jī)二級(jí)的c語(yǔ)言快要考試了,我從網(wǎng)上摘抄了一些c語(yǔ)言二級(jí)的原題,并利用gpt做了一些解析來(lái)理解這些問(wèn)題,以便大家能夠更好的學(xué)習(xí)。 同時(shí),我將問(wèn)題答案設(shè)置為白色(只需要選中就可以查看),大家可以在理解問(wèn)題的同時(shí)進(jìn)行練習(xí)。 Dotcpp——里面有C語(yǔ)言原題以

    2024年02月21日
    瀏覽(17)
  • C語(yǔ)言程序生命周期

    可能大家都知道一個(gè)C語(yǔ)言程序需要經(jīng)過(guò)編譯生成可執(zhí)行文件就可以運(yùn)行起來(lái),但是這并非是一個(gè)完整的C語(yǔ)言程序流程,下面我們就詳細(xì)了解一下C語(yǔ)言程序的整個(gè)生命周期。 一個(gè)完整C語(yǔ)言的生命周期分為以下五個(gè)部分: 編寫代碼 編譯 鏈接 裝載 執(zhí)行 編寫代碼是大家最熟悉不過(guò)

    2024年02月11日
    瀏覽(18)
  • C語(yǔ)言程序10題

    第60題 (20.0分) ?????? ? ? 難度:中 ???????第1章 /*------------------------------------------------------- 【程序設(shè)計(jì)】 --------------------------------------------------------- 題目:請(qǐng)編寫一個(gè)函數(shù)fun,它的功能是:計(jì)算并輸出給定整數(shù)n的所有因子 ??????(不包括1與自身)之和。規(guī)定n的值

    2024年04月15日
    瀏覽(16)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包