創作內容

1 GP

【C++原始碼討論】E-Tutor-程式練習-[中文題庫]數學類 I -[C_MM33-易]-找1~N的完美數

作者:朔哥│2017-01-12 00:20:16│巴幣:2│人氣:1217

找1~N的完美數

題目:找1~N的完美數
難易度:容易
命題老師:未知


問題描述:
一個數如果恰好等於它的因數之和,這個數就稱為 " 完美數 " ( perfect number )。例如 6=1 + 2 + 3 ,因 1 、 2 與 3 都是 6 的因數,因而 6 是完美數。試撰寫一程式,輸入一個正整數 N ,找 1~N 的完美數。
輸入說明
輸入一個正整數。
輸出說明:
輸出完美數。

SampleInput SampleOutput
1000 6_28_496
上面sampleoutput的6 28 496本來是空格,我把它改成"_"會比較好理解


這題的某一測資結果是 TLE 這種錯誤很難處理,這已經不是我能力所及的範圍惹,就這樣吧,至少演算法是對的!!

這題會用到:
  1. 布林函數的應用(超實用的)
  2. 印出時的套路
  3. vector的應用

先解決判斷完美數問題!
首先我們先寫判斷是否為完美數的funcion 命名cmp,丟一整數num做判斷動作
用布林函數去做判斷動作
先宣告一vector word1塞int

迴圈27~29行從1~num如果num%i=0就把i塞給word1(word1塞的就是num的因數)
宣告整數sum並初始化為0
在迴圈31~34行做累加動作
如果num=sum就回傳true(是完美數)
否則回傳false(不是完美數
(這事函數實做,不要忘記做函數宣告)
=======
回到main主函數部分
宣告一個vector word塞完美數(印出要用)
宣告一整數x讓使用者輸入
迴圈10~14行從1~-x-1依序丟到cmp去做判斷的動作並用 bool number存
如果number=true(i是完美數)就把i丟給word存
這樣word存的就是1~x的所有完美數
迴圈15~19行做印出動作,如果i不是最後一個元素就印出空白
(這樣印到最後就不會印出空白了,最後一個元素的元素值要-1)
最後20行不要忘記endl



是不是很簡單呢?????
原始碼:
結果:

TLE錯誤這不是我程度所能及的。。至少上面演算法是絕對不會有錯的!

BUG &問題回報
可寄站內信、在底下留言或到我個人FB私下詢問


引用網址:https://home.gamer.com.tw/TrackBack.php?sn=3445311
Some rights reserved. 姓名標示-非商業性 2.5 台灣

追蹤私訊切換新版閱覽

作品資料夾

yvonne40528歡迎來看小說ゝω・
🌕《虛月舞曲》|架空、奇幻、戰鬥、愛情看更多我要大聲說昨天16:55


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】