看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《wayne79 (wayne)》之銘言: : 標題: [問題] c++因數 : 時間: Thu Aug 4 14:56:42 2011 : : 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) : c++ : : 問題:輸入二個正整數m,n 求因式如下圖 : http://ppt.cc/Bo1( : : 我寫的程式 : <include省略> : int main() : { : int a,b,i,j; : cout<<"輸入兩個正整數:"; : cin>>a; : cin>>b; : : for(i=1;i<=b;i++) : { : cout<<i<<"的因數有"<<endl; : : } : system("pause"); : return 0; : } : : : 昨天發的文讓大家看不懂造成麻煩抱歉 你連題目都打錯...遇到不會寫的題目, 解決步驟如下: 1. 分解關鍵字 2. 搜尋關鍵字定義 3. 以關鍵字作為子問題, 先解決子問題 子問題都處理完, 對這題來說原問題也解決了, 首先找尋「因數」 的定義:   "假如整數a除以b,結果是無餘數的整數,那麼我們稱b就是a的 因數。" 取餘數有運算子%可以幫我們做到: a % b = a 除以 b 的餘數  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 如果該數為 0, 表示 b 是 a 的因數 if( a 除以 b 的餘數 為 0 ) {  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ b 是 a 的因數 }  ̄ ̄ ̄ ̄ ̄ ̄ ̄ 如果要找出 8 所有的因數, 最無腦的方法是從 1 試到 8, 每一個 數字都去試試是不是 8 的因數: for( b 從 1 到 a ) { if( a 除以 b 的餘數 為 0 ) {  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ b 是 a 的因數 }  ̄ ̄ ̄ ̄ ̄ ̄ ̄ } 然後對區間 [left, right]內所有整數都要這樣做, 只是再包一層 簡單的迴圈而已.. 就算你敢問這種花點時間看語法書就能解的問題, 我也不想給你解 答... -- ★ ★ ███ ███ █▌█ ██◣ ███ ▋▋█ █▂█ █▃█ ███ █▆█ █▄█ ███ █ ◣ █ █ ▋██ █▆◤ ███ ███ Kim Jae Kyung Koh Woo Ri Cho Hyun Young Kim Ji Sook φwindyhorse No Eul Oh Seung A Jung Yoon Hye -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.121.197.115
james732:覺得貼這篇文章+上色所花的心力,比直接給他答案還辛苦XD 08/04 16:18
horngsh:超過a/2(包含)以後的數,就不會是a的因數了.比如:a = 8, 08/04 16:31
horngsh:5,6,7,8就不會是8的因數. 08/04 16:31
horngsh:上面說錯了, 是(不包含)才對 08/04 16:32
x 是 x 的因數唷~ :)
tropical72:要套的話:因數永遠是成對的,判斷到 sqrt(a) 即可。 08/04 16:38
我想到stack @"@ ※ 編輯: loveme00835 來自: 140.121.197.115 (08/04 16:40)
KTFGU:推 08/04 16:41
wayne79:所以是for 裡面串 if + else? 08/04 18:05
wayne79:ps老師上課都印講義可是鑽研講義第三天了真的想不出來 08/04 18:05
wayne79:我在試試看真的解不出來在請教您吧 08/04 18:06
tropical72:認真過的屍體真的不該只是那樣而已 XD 08/04 18:14
firejox:質因數分解 DFS遍歷... 08/04 21:24
firejox:建表也可... 08/04 21:30
horngsh:拿DS的書上的pseudo code來實作程式, 這樣進步會很快! 08/05 08:02
xatier:推 08/05 12:31
POSIX:哇 ~又出現了 招牌彩圖解說!!!XD 08/05 14:28