一、問題及代碼:
/* 文件名稱:項(xiàng)目7.cpp * 作 者:嚴(yán)明遠(yuǎn) * 完成日期:2017 年 3 月 5 日 * 版 本 號(hào):v1.0 * 對(duì)任務(wù)及求解方法的描述部分: * 輸入描述:無 * 問題描述: 【項(xiàng)目7:輸出完數(shù)】一個(gè)數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)就稱為“完數(shù)”。 例如6=1+2+3,再如8的因子和是7(即1+2+4),8不是完數(shù)。編程找出1000以內(nèi)的所有完數(shù)。(答案:6 28 496)提示:首先從2到1000構(gòu)造循環(huán)控制變量為i的外層循環(huán)。每次循環(huán)中,利用內(nèi)嵌的循環(huán)逐個(gè)地求出i的因子,并累加起來(為提高效率,可能的因子從1到i/2),如果因子和等于i,則說明是完全數(shù),輸出。然后繼續(xù)循環(huán),考察i+1……* 程序輸出: * 問題分析:略 * 算法設(shè)計(jì):略 */ #include<iostream>using namespace std;int main(){ int i,j,k,num,temp,n; int a[10];//存放因子。 for(i=2;i<1000;i++) { num=0,n=0;//初始化。 for(j=1;j<i;j++) { temp=0; if(i%j==0) { temp=1; a[n]=j; n++; } if(temp) num+=j;//判斷因子之和是否等于被除數(shù)。 } if(num==i) { cout<<"完數(shù):"<<num<<"="; for(k=0;k<n-1;k++) { cout<<a[k]<<"+"; } cout<<a[n-1]<<endl; } } return 0;}二、運(yùn)行結(jié)果:
三、’心得體會(huì):
應(yīng)熟練運(yùn)用循環(huán)嵌套,每層循環(huán)數(shù)據(jù)應(yīng)該初始化。
四、知識(shí)點(diǎn)總結(jié):
因子不包括本身(!因數(shù))可通過循環(huán)嵌套,利用內(nèi)層循環(huán)逐個(gè)求出i的因子,并累加起來。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注