注意:學生黨如果存在付費問題可以加我好友,我可以開單篇短時間的免費喲~ 私聊我就好~
情景再現
👸小媛:小C,你知道什么是完全數嗎?
🐰小C:知道呀,難道是今天老師又出題你又不懂了嘛。
👸小媛:哈哈哈,是的,我現在腦子懵懵的,我的自信心完全受到了打擊。
🐰小C:沒事的,都是小問題。
👸小媛:其實我是發現老師出的題目都是數學有關,我數學又不好,頭都大了,很多知識我都不懂是怎么回事。
🐰小C:慢慢補唄,都是小東西,不難的。
👸小媛:那你趕緊跟我說吧,我要學習。
🐰小C:哈哈哈,行嘞。我們在寫求完全數時必須要知道什么是完全數,這個你會吧?
👸小媛:就是不會,所以我就第一步就卡死了。
🐰小C:哈哈哈,那我就跟你解釋一下什么是完全數吧。
👸小媛:嗯,悉聽教導。
🐰小C:完全數就是這個數的因子等于這個數本身,就是完全數。
👸小媛:???什么是因子,老師也是這樣說的,我又不敢問,所以就聽不懂。
🐰小C:因子就是可以整除這個數的數,例如一個數 6,可以整除 6 的有哪些呢?
👸小媛:1、2、3 嗎?
🐰小C:是的,那你看看 1、2、3 加起來等于幾呢?
👸小媛:1、2、3 相加等于 6。
🐰小C:這個 6 是不是本身的數?因為我們剛剛說的是 6 這個數能夠被那幾個數整除。
👸小媛:是的,難道這樣的數就叫做完全數嗎?
🐰小C:對的,懂了吧?然后 1、2、3 就叫做這個數的因子。
👸小媛:唔,那么簡單?就這?
🐰小C:對呀,你以為有多難。
👸小媛:那代碼怎么寫呢?多謝小 C 教導。
🐰小C:你就是懶。首先我們算一下一個一個數有是數能夠整除,你說怎么做?
👸小媛:不懂。
🐰小C:那我們有一個數 1000,如何判斷有什么數能夠整除這個數?
👸小媛:用循環嗎?
🐰小C:是的,直接使用一個循環,設置一個循環變量,小于 1000 開始遞增,如果取模 1000 為 0,那么就表示可以整除。
👸小媛:唔,我懂了,你看看代碼是不是這樣。
#include<stdio.h>
int main()
{int a;printf("能夠被整除的數有:");for(a=1;a<1000;a++){if(1000%a==0){printf("%d\n",a);}}return 0;
}
👸小媛:下面是結果。
🐰小C:不錯,那我們的下一步是什么?
👸小媛:下一步呀?對呀,我們的下一步是啥?我忘了。
🐰小C:我們的下一步就開始記錄這些數的和是否等于本身 1000。
👸小媛:對喲,我懂代碼怎么寫了。
#include<stdio.h>
int main()
{int a,s=0;printf("能夠被整除的數有:");for(a=1;a<1000;a++){if(1000%a==0){printf("%d\n",a);s=s+a;}}if(s==1000){printf("1000 是完全數\n");}else{printf("1000 不是完全數\n");}return 0;
}
👸小媛:然后得出結果,1000 不是完全數。
🐰小C:哈哈哈,會了吧?
👸小媛:會了,挺簡單的,好了,那我就先走了,多謝小 C教導。
🐰小C:別急,你想想題目是啥?
👸小媛:題目是說求一個范圍內的完全數有哪些,怎么了?
🐰小C:你現在不是只求了一個數 1000,沒有求得一個范圍的所有數呢。
👸小媛:啊!對喲,所以應該是1-10000 或者說 1-100000 之內有哪些完全數。
🐰小C:索引你這個題還沒做完呢。
👸小媛:小C 哥求教。
🐰小C:其實很簡單,你想想,之前的代碼中 1000 是一個數,我們把這個 1000 編程一個可遞增的變量不就好了?
👸小媛:你的意思是說這個 1000 用一個循環變量來控制?然后弄個循環嵌套?
🐰小C:是的,你看看下面的代碼。
#include<stdio.h>
int main()
{int a,s=0,j=1;printf("完全數有:");while(j<10000){s=0;for(a=1;a<j;a++){if(j%a==0){s=s+a;}}if(s==j){printf("%d 是完全數\n",j);}j=j+1;}return 0;
}
👸小媛:唔,上面的代碼就是在原有的代碼上加了一個外層循環,就把那個 1000 當作了循環變量,然后把這個外層循環變量 j 拿到之前的代碼中替換掉1000就可以了?
🐰小C:是的,還有一點就是把那個計算因子和的變量每次都要置零,這樣每次加的數才不會保留上一次的結果,也就是 s=0;
這個代碼。
👸小媛:懂了,謝謝小 C,我運行出來了。
🐰小C:那就行,那就沒啥問題了。
👸小媛:好耶~
前言
本專欄內容將會以輕松、簡單的方式完成習題的解答,用情景再現的文章風格使讀者能夠在輕松愉悅的閱讀氛圍中完成知識的吸收,本專欄考慮讀者的吸收能力,不講解過多高效的計算方法,降低閱讀門檻,希望各位多多支持~
作者簡介
作者名:1_bit
簡介:CSDN博客專家,2020年博客之星TOP5,藍橋簽約作者。15-16年曾在網上直播,帶領一批程序小白走上程序員之路。歡迎各位小白加我咨詢我相關信息,迷茫的你會找到答案。
博客地址:https://i1bit.blog.csdn.net
本專欄已參加 CSDN 蓄力計劃,感謝讀者支持。