/*完數(shù),即完美數(shù),一個數(shù)如果恰好等于除它本身外的因子之和,這個數(shù)就稱為完數(shù)。
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比溧陽網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式溧陽網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋溧陽地區(qū)。費用合理售后完善,十年實體公司更值得信賴。
思路:完全數(shù)(Perfect number),又稱完美數(shù)或完備數(shù),是一些特殊的自然數(shù)。如果一個數(shù)恰好等于它的因子之和,則稱該數(shù)為“完全數(shù)”。先定義一個函數(shù)用于判斷一個數(shù)是否是完數(shù),接著依次從2到10000循環(huán)判斷。
根據(jù)該定義 可以得出判斷完數(shù)的函數(shù)如下:include stdio.hint is_perfect_number(int n){ int i,s=0; for(i = 1; i =n/2; i ++) if(n%i == 0) s+= i;//統(tǒng)計所有真因子的和。
for(i=2;i=500;i++)//一種空間換時間的算法,可以將數(shù)字下標代替數(shù)字。for(j=i+i;j=1000;j=i+j)//篩選并且算出每個數(shù)的和。
根據(jù)完全數(shù)的定義,先計算所選取的整數(shù)a(a的取值1~1000)的因子,將各因子累加于m,若m等于a,則可確認a為完全數(shù)。
if(s == n) return 1;//如果與原值相等,則該數(shù)為完數(shù)。return 0;//不是完數(shù)。} 根據(jù)該函數(shù),只需要對需要打印的范圍內(nèi)1 ~1000做遍歷,并逐一調(diào)用該函數(shù)判斷,如果返回1則打印即可。
思路是正確的,但是程序你寫錯了點地方。while循環(huán)體內(nèi),改成sum+=a,你原來的寫法,sum=+b,第一不對,第二即使符合條件,根據(jù)if中的判斷條件,b也恒等于0。
// 本程序演示一個數(shù)如果恰好等于它的因子之和,這個數(shù)就稱為“完數(shù)”。
有三個,2496。第一個完全數(shù)是6,它有約數(shù)6,除去它本身6外,其余3個數(shù)相加,1+2+3=6。
1、int is_perfect_number(int n){ int i,s=0;for(i = 1; i =n/2; i ++)if(n%i == 0) s+= i;//統(tǒng)計所有真因子的和。if(s == n) return 1;//如果與原值相等,則該數(shù)為完數(shù)。
2、解題思路:所謂完數(shù)是一些特殊的自然數(shù)。如果一個數(shù)恰好等于它的因子之和,則稱該數(shù)為“完全數(shù)”。先定義一個函數(shù)用于判斷一個數(shù)是否是完數(shù),接著依次從2到5000依次循環(huán)判斷。
3、如果沒有內(nèi)部的sum=0清零,上次循環(huán)時sum+=m這一句代碼的操作結(jié)果會一直在sum上累加,這樣if(sum==number)的判斷就永遠不會滿足,就不會有任何的輸出顯示了。你可以對程序進行單步調(diào)試,就可以發(fā)現(xiàn)問題了。
4、可以定義一個結(jié)構(gòu),其中的數(shù)據(jù)成員有:int型變量s,用以存儲各因數(shù)的和值;int型數(shù)組ys,長度為64,用于存儲各因數(shù)的值;還有一個int型變量c,用于存儲因數(shù)的個數(shù)。
網(wǎng)頁題目:c語言利用函數(shù)求完數(shù) c語言利用函數(shù)求和
網(wǎng)站網(wǎng)址:http://chinadenli.net/article22/deidhcc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設、網(wǎng)站收錄、電子商務、虛擬主機、定制開發(fā)、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)