秋霞电影网午夜鲁丝片无码,真人h视频免费观看视频,囯产av无码片毛片一级,免费夜色私人影院在线观看,亚洲美女综合香蕉片,亚洲aⅴ天堂av在线电影猫咪,日韩三级片网址入口

《算法設計與分析》實驗一

上傳人:緣*** 文檔編號:20452831 上傳時間:2021-03-22 格式:DOCX 頁數(shù):17 大?。?83.57KB
收藏 版權申訴 舉報 下載
《算法設計與分析》實驗一_第1頁
第1頁 / 共17頁
《算法設計與分析》實驗一_第2頁
第2頁 / 共17頁
《算法設計與分析》實驗一_第3頁
第3頁 / 共17頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《算法設計與分析》實驗一》由會員分享,可在線閱讀,更多相關《《算法設計與分析》實驗一(17頁珍藏版)》請在裝配圖網上搜索。

1、 學 號 1421050102 《算法設計與分析》實驗報告一 學 生 姓 名 Cherish 專 業(yè) 、 班 級 地 理 指 導 教 師 唐 國 峰 成 績 計算機與信息工程學院軟件工程系 2017 年 3 月 14 日

2、實驗一:遞歸策略運用練習 一、實驗目的 本次 是 算法的算法 及 用 ,  旨在加深學生 算法原理的理解,  提高 學生運用 算法解決 的能力。 二、實驗步驟與要求 1. 前復 程所學知 以及 和理解指定的 外 材料; 2.學生獨自完成 指定內容; 3. 束后,用 一的 告模板 寫 告 。 4. 提交 明: ( 1) 子版提交 明: a 需要提交 Winrar 包,文件名 “ 《算法 與分析》 一 _學號

3、_姓名”, 如“《算法 與分析》 一 _09290101_ 三”。 b 包內 一個“ 《算法 與分析》 一 _學號 _姓名”命名的 文件 , 其下 兩個文件 ,一個文件 命名 “源程序” ,另一個文件 命名 “ 告 子版” 。其下分 放置 成果物。 ( 2)打印版提交 明: a 不可隨意更改模板 式。 b 字體:中文 宋體,大小 10 號字,英文 Time New Roman ,大小 10 號 字。 c 行 距: 倍行距。 ( 3)提交截止 : 2017 年 3

4、月 28 日 16:00。 三、 實驗項目 1.運用 策略 算法 下述 目的求解 程。 目列表如下: 【必做 】 ( 1)運 會開了 N 天,一共 出金牌 M 枚。第一天 金牌 1 枚加剩下的七分之一枚,第 二天 金牌 2 枚加剩下的七分之一枚, 第 3 天 金牌 3 枚加剩下的七分之一枚, 以后每天都照此 理。到了第 N 天 好 有金牌 N 枚,到此金牌全部 完。 程求 N 和 M 。 ( 2)國王分 。某國王 前 兒子 分 。他把 分 若干份,然后 第一個兒 子一份,再加上剩余 的 1/10 ;

5、第二個兒子兩份,再加上剩余 的 1/10 ;??; 第 個兒子 i 份,再加上剩余 的 1/10 。每個兒子都竊竊自喜。以 得到了父王的偏 ,孰不知國  i 王是“一碗水端平”的。 用程序回答,老國王共有幾個兒子? 共分成了多少份? ( 3)出售金 :第一次 出全部金 的一半加二分之一條金 ;第二次 出乘余金 的三分之一加三分之一條金 ; 第三次 出剩余金 的四分之一加四分之一條金 ; 第四次 出剩余金 的五分之一加五分之一條金 ; 在 剩下 11 條金 ,在出售金 不能把金

6、切開或者有任何破 的。 缸里原有多少條金 ? ( 4)某路公共汽 , 共有八站,從一號站 上已有 n 位乘客,到了第二站先下一 半乘客,再上來了六位乘客;到了第三站也先下一半乘客, 再上來了五位乘客, 以后每到一站都 先下 上已有的一半乘客,再上來了乘客比前一站少一個??,到了 點站 上 有乘客六人, 上的乘客有多少? ( 5)猴子吃桃。有一群猴子摘來了一批桃子,猴王 定每天只準吃一半加一只(即第二天吃剩下的一半加一只,以此 推) ,第九天正好吃完, 猴子 摘來了多少桃子? ( 6)小 。第一天 了全 的一半加二 ,第二天 了

7、剩下的一半加二 ,以后天天 如此??,第六天 完了最后的三 , 全 有多少 ? ( 7)日本著名數(shù)學游 家中村 作教授提出 一個 : 父 將 2520 個桔子分 六個 兒子。分完 后父 : “老大將分 你的桔子的 1/8 老二;老二拿到后 同原先的桔子分 1/7 老三;老三拿到后 同原先的桔子分 1/6 老四;老四拿到后 同原先的桔子分 1/5 老五; 老五拿到后 同原先的桔子分 1/4 老六;老六拿到后 同原先的桔子分 1/3 老大”。 果大 家手中的桔子正好一 多。 六兄弟原來手中各有多少桔子? ( 8)某種 染病第一天只有一

8、個患者,前 5 天 潛伏期,不 作也不會 染人,第 6 天開 始 作,從 作到治愈需要 5 天 ,期 每天 染 3 個人,求第 N 天共有多少患者。 【 做 】( 5 選 3) ( 1) 了保障社會秩序,保 人民群眾生命 安全,警察叔叔需要與罪犯斗智斗勇,因而需要 常性地 行體力 和智力 !某批警察叔叔正在 行智力 : 1 2 3 4 5 6 7 8 9 = 110; 看上 的算式, 了使等式成立,需要在數(shù)字 填入加號或者減號 (可以不填, 但不能填 入其它符號) 。之 沒有填入符號的數(shù)字 合成一個數(shù),例如: 12+34+56+7-8+9 就是一

9、種合格 的填法; 123+4+5+67-89 是另一個可能的答案。 你利用 算機的 ,幫助警察叔叔快速找到所有答案。 每個答案占一行。形如: 12+34+56+7-8+9 123+4+5+67-89 ( 2) 將一個整數(shù) 出。形如654321, 出 1,2,3,4,5,6 ( 3)用 分解 因數(shù)。形如:12=2*2*3 ( 4)50 個 梯,你一次可以上一 或兩 ,走上去,共有多少種走法? ( 5) 號 的字符 合。  目:在 或者手機上,  一個數(shù)字如  2 著字母 

10、 ABC , 7 著 PQRS。那么數(shù)字串 27 所 的字符的可能 合就有 3*4=12 種(如 AP, BR 在 入一個 3 到 11 位 的 號 , 打印出 個 號 所 的字符的所有可能 合和  等)。 合數(shù)。 四、實驗過程 以下程序都是在  VS2010 下編譯與  VC6.0  代碼稍有不同。 (1)運 會開了 N 天,一共 出金牌 M 枚。第一天 金牌 1 枚加剩下的七分之一枚,第二天 金牌 2 枚加剩下的七分之一枚, 第 3 天 金牌 3 枚加剩下的七分之一枚,

11、以后每天都照此 理。 到了第 N 天 好 有金牌 N 枚,到此金牌全部 完。 程求 N 和 M 。 目分析 依據(jù) 目可寫出 式:  (F(n)-n)*6/7=F(n+1);F(n)  是第  n天 牌 數(shù)即第  n-1天剩余的包括第  n天 的和剩下的。每天 放的金牌數(shù):當天天數(shù) +(前一天剩余金牌 -當天天數(shù)) /7,所以判 的條件是(前一天剩余金牌 -當天天數(shù)) 為 7的整數(shù)倍, 第 i+1 天的金牌數(shù)即 i天剩下的必 是 6的整數(shù) 倍。 算法構造 遞歸函數(shù):

12、 nSum(i+1,n)=(nSum(i,n)-i)*6/7.  篩選條件:  (nSum(i,n)-i)%7==0&&(nSum(i,n)%6==0) 算法實現(xiàn) #include #define devide 7; //  不知什么原因這樣定義下面不能用?  vc6.0  未安上,不知與  vs2010 有和區(qū)別? int nSum(int i,int n)  //nSum()  函數(shù)定義第  i 天

13、的金牌數(shù)即  i-1  天剩下  . { int result=0; if(i==n) { return n; } else { result=((nSum(i+1,n)*7)/6+i); // 遞歸函數(shù): nSum(i+1,n)=(nSum(i,n)-i)*6/7. } return result; } void main() { for(int n=2;n<=10;n++) // 遞增比賽天數(shù)逐個驗證 { int skip=0; for(int i=1;

14、i<=n;i++) // 依次篩選從 i=1 到 n符合條件的 n值 { 剩余金牌  if((nSum(i,n)-i)%7==0&&(nSum(i,n)%6==0)) // 每天發(fā)放的金牌數(shù):當天天數(shù) - 當天天數(shù)) /7 ,即(前一天剩余金牌 - 當天天數(shù))為 7的整數(shù)倍  +(前一天 { int skip=1; // 遞歸函數(shù): nSum(i+1,n)=(nSum(i,n)-i)*6/7 即 nSum(i,n)=nSum(i+1,n)*7/6+i ,第 i+1 天的金牌數(shù)即 i 天剩下的必須是 6的整數(shù)倍

15、 printf( " 共有金牌 %d枚, 共進行 %d天 \n" ,nSum(1,n),n); // 金牌總數(shù)即第一天金牌數(shù) for(int j=1;j<=n;j++) { printf( " 第 %d天, 發(fā)放 %d+%d枚, 還剩 %d枚\n",j,j,(nSum(j,n)-j)/7,(nSum(j,n)-j)*6/7); } break; } } if(skip==1 ) / / 用于跳出雙層循環(huán)結構即 n遞增時第一個滿足時即可輸出,可運行結果卻 不然 break;// 會有在 n上界內更多的結構輸出,只有第一個 n值滿足不知

16、為何?? } getchar(); } 運行 果 經驗歸納 式容易想出,但是相 的 條件比 確定。 (2)國王分 。某國王 前 兒子 分 。他把 分 若干份,然后 第一個兒子一 份,再加上剩余 的 1/10 ; 第二個兒子兩份,再加上剩余 的 1/10 ;??; 第 i 個兒子 i 份,再加上剩余 的 1/10 。每個兒子都竊竊自喜。 以 得到了父王的偏 , 孰不知國王是 “一 碗水端平”的。

17、 用程序回答,老國王共有幾個兒子? 共分成了多少份? 目分析 道國王分 的 和上 運 會 金牌 似,不 在 條件 由 意略不同其 也是一 ,每個兒子分到的 相同即:  E(i+1,n)-E(i,n)=E(i,n)-E(i-1,n)  ,且第  i 個兒子分  i 份及剩下的 1/10,即  E(i,n)-i  的差是  10 的整數(shù)倍。 算法構造 函數(shù): E(i+1,n)=(E(i,n)-n)*9/10;E(i,n) 條件: 每個兒子分到的 相同

18、即  當要分 第 i 個兒子 有的份數(shù); E(i+1,n)-E(i,n)=E(i,n)-E(i-1,n) ;且第 i個兒子分  i 份及剩下的 1/10,即 E(i,n)-i  的差是  10的整數(shù)倍。 算法 #include #define devide 10; // 定 到后面不知怎么卻出 。 int E(int i,int n) // 函數(shù): E(i+1,n)=(E(i,n)-n)*9/10;E(i,n)  當要分 第

19、  i 個兒子 有的 份數(shù); { int sum=0; if(i==n) return n; // 當份到最后一個兒子 分完,往前求解; else sum=(E(i+1,n)*10)/9+i; // 依次 ; return sum; } void main() { for(int n=3;n<=10;n++) { int skip=0; for(int i=2;i

20、 E(i+1,n)-E(i,n)=E(i,n)-E(i-1,n)  ; // 且第 i  個兒子分  i 份及剩下的  1/10  ,即 E(i,n)-i  的差是  10的整數(shù)倍; if((2*E(i,n)-E(i-1,n)-E(i+1,n)==0)&&(E(i,n)-i)%10==0)  // 用這兩個條件篩選; { int skip=1; printf( " 國王共有 %d個兒子 , 財產共分成  %d份。\n" ,n,E(1,n));  // 總份數(shù)即要分第

21、 一個兒子時有的分數(shù) E(1,n) for(int j=1;j<=n;j++) printf ( " 第%d個兒子,分 %d+%d份,還剩 %d份。 \n",j,j,(E(j,n)-j)/10,(E(j,n)-j)*9/10); break; } } if(skip==1) break; } getchar(); } 運行結果 經驗歸納 由于和第一題類似,此題較為順利,類似多練

22、習也會得心應手。 (3)出售金魚問題:第一次賣出全部金魚的一半加二分之一條金魚;第二次賣出乘余金魚的三 分之一加三分之一條金魚; 第三次賣出剩余金魚的四分之一加四分之一條金魚; 第四次賣出剩余金魚的五分之一加五分之一條金魚;現(xiàn)在還剩下 11 條金魚,在出售金魚時不能把金魚切開或者有任何破損的。問這魚缸里原有多少條金魚? 題目分析 與上題類似出口為第四次買之前還有減去第四次買的還有  11 條。 算法 #include #define n 4; int Fish

23、(int i)// 構造函數(shù) {  Fish(i) 第 i天 之前 剩多少,  Fish(1) 即 數(shù); int result=0; if(i<4) result=(Fish(i+1)+(Fish(i+1)+1)/i); else return 14; // 第四天 之前的 - 第四天 的 =11,即 Fish(4)-(Fish(4)/5+1/5)=11,F(4)=11 return result; } void main() { prin

24、tf(" 共有金 %d 條。 \n",Fish(1)); for(int i=1;i<=4;i++) { printf(" 第 %d 天 ,賣 %d 條, 剩 %d條。 \n",i,(Fish(i)+i)/(i+1),(Fish(i)-(Fish(i)+i)/(i+1))); } getchar(); } 運行 果 :以上 目 似可 比做出。 4.某路公共汽 , 共有八站,從一號站 上已有 n 位乘客,到了第二站先下一半乘客,

25、 再上來了六位乘客; 到了第三站也先下一半乘客, 再上來了五位乘客, 以后每到一站都先下 上 已有的一半乘客, 再上來了乘客比前一站少一個??, 到了 點站 上 有乘客六人, 問發(fā)車時 上的乘客有多少? 目分析 此 與以上幾 似,略有不同而已。 算法構造 由于從第一站出 沒有任何 ,故將第二站作 始 站; 函數(shù) Bus(i) 到達第 i站 未上下乘客 上人 數(shù)量; 算法實現(xiàn) #include i nt Bus(int i) // 由于從第一站出發(fā)沒有任何變動,故將第二站作為始

26、發(fā)站; { // 函數(shù) Bus(i) 為到達第 i 站還未上下乘客時車上人員數(shù)量; int sum=0; if(i<6)// sum=2*(Bus(i+1)+i-7); // 有遞歸函數(shù): Bus(i+1)=Bus(i)/2+7-i; else return 10; / / 由最后還剩 6人推的 Bus(6)=10; r eturn sum; } void main() { printf(" 發(fā)車時車上共有 %d 人。 \n",Bus(1)); for(int i=1;i<6;i++) printf(" 第 %d 站

27、 ,上來 %d 人 ,下去 %d 人 ,剩下 %d 人 \n",i+1,(7-i),(Bus(i)/2),Bus(i+1)); getchar(); } 運行結果 ( 5)猴子吃桃。有一群猴子摘來了一批桃子,猴王規(guī)定每天只準吃一半加一只(即第二天吃剩下的一半加一只,以此類推) ,第九天正好吃完,問猴子們摘來了多少桃子? 題目分析 與上題類似 算法構造 遞推函數(shù) Monkey(i) 表示第 i 天吃的和剩下的和;由 Monkey(i+1)=Monk

28、ey(i)/2-1 推得; 由 Monkey(9)=Monkey(9)/2+1, 得出口 Monkey(9)=2 。 算法實現(xiàn) #include int Monkey(int i)  // 遞推函數(shù)  Monkey(i)  表示第  i 天吃的和剩下的和; { int sum=0; if(i<9) sum=2*(Monkey(i+1)+1);  / / 由 Monkey(i+1)=Monkey(i)/2-1  推得; else

29、 return 2; //  由 Monkey(9)=Monkey(9)/2+1,  得出口  Monkey(9)=2; return sum; } void main() { printf(" 共有桃子 %d 個。 \n",Monkey(1)); for(int i=1;i<=9;i++) printf(" 第 %d 天,吃 %d+%d 個,剩下 %d個。 \n",i,Monkey(i)/2,1,Monkey(i)/2-1); getchar(); } 運行 果

30、 ( 6)小 。第一天 了全 的一半加二 ,第二天 了剩下的一半加二 ,以后天天如此??,第六天 完了最后的三 , 全 有多少 ? 目分析 與以上 目 似。 算法構造 構造 推函數(shù): Book(i); 表示第 i 天要 剩的 數(shù);由 Book(i+1)=Book(i)-(Book(i)/2+2) 得出; 由 Book(5)-(Book(5)+2)=3 可得出口;算法 #include int Book(int i)

31、 // 構造 推函數(shù):  Book(i);  表示第  i 天要 剩的 數(shù); { int sum=0; if(i<5) sum=2*(Book(i+1)+2); // 由 Book(i+1)=Book(i)-(Book(i)/2+2)  得出; else return 10; // 由 Book(5)-(Book(5)+2)=3 return sum;  可得出口; } void main() { printf(" 全書共 %

32、d 頁。 \n",Book(1)); for(int i=1;i<=5;i++) printf(" 第 %d 天,看 %d+%d 頁,還剩 %d頁。 \n",i,Book(i)/2,2,Book(i)/2-2); getchar(); } 運行結果 ( 7)日本著名數(shù)學游戲專家中村義作教授提出這樣一個問題:父親將 2520 個桔子分給 六個兒子。分完 后父親說: “老大將分給你的桔子的 1/8 給老二;老二拿到后連同原先 的桔子分 1/7 給老三;老三拿到

33、后連同原先的桔子分 1/6 給老四;老四拿到后連同原先 的桔子分 1/5 給老五;老五拿到后連同原先的桔子分 1/4 給老六;老六拿到后連同原先 的桔子分 1/3 給老大”。結果大家手中的桔子正好一樣多。 問六兄弟原來手中各有多少桔 子? 題目分析 由老大開始分給老二,當老大拿到老六的后總數(shù)達到平均數(shù),以此為入口進行遞推。 算法構造 第一個孩子從國王那里分到的桔子總數(shù)應為平均數(shù)減去最后一個孩子分出去的部分后乘以 8/7 。 算法實現(xiàn) #include #define DENOMINATOR_MAX

34、8 // 分母最大值 #define DENOMINATOR_MIN 3 // 分母最小值 //a[i][0] 表示第 i 個孩子分出的桔子總數(shù) //a[i][1] 表示第 i 個孩子從國王那里分到的桔子總數(shù) int Orange(int a[5][2],int i) { int average=2520/6; int p; if (i==0) { // 第一個孩子從國王那里分到的桔子總數(shù)應為平均數(shù)減去最后一個孩子分出去的部分后乘以 8/7 。 a[i][1] = (average-average/(DENOMINATOR

35、_MIN-1))*(DENOMINATOR_MAX-i)/(DENOMINA TOR_MAX -1-i); // 第一個孩子分給第二個孩子的桔子數(shù)量。 a[i][0] = a[i][1] - (average-average/(DENOMINATOR_MIN-1)); } else { // 第 i 個孩子從國王那里分到的桔子總數(shù)。 a[i][1] = average *(DENOMINATOR_MAX-i)/(DENOMINATOR_MAX-1-i) - Orange(a,i-1); // 第 i 個孩子分給第 i+

36、1 個孩子的桔子數(shù)量。 a[i][0] = a[i][1] + Orange(a,i-1) - average; } p=a[i][0]; return p; } // 主函數(shù) void main() { int ora[5][2]={{0,0},{0,0},{0,0},{0,0},{0,0}}; Orange(ora,5); for(int j=0;j<=5;j++) { printf("  第 %d 個孩子分出  %d 個橘子。  \n",j+1,ora[j][0]); 

37、 } printf("  國王最初分配桔子狀況如下所示:  \n"); for(int k=0;k<=5;k++) { printf("  第 %d個孩子從國王那里分得  %d 個橘子。  \n",k+1,ora[k][1]);  } getchar(); } 運行結果 ( 8)某種傳染病第一天只有一個患者,前 5 天為潛伏期,不發(fā)作也不會傳染人,第 始發(fā)作,從發(fā)作到治愈需要 5 天時間,期間每天傳染 3 個人,求第 N 天共有多少患者。 

38、 6 天開 題目分析 第n天的病總人數(shù)包括 n-1天潛伏的和發(fā)作的在當天又傳染的人數(shù)再去掉當天治愈的; 算法構造 遞推函數(shù):該病五天內潛伏第六天發(fā)病后五天內治愈。 Day(n)=Day(n-5)*3+Day(n-1); 算法實現(xiàn) #include #include int Day(int n) // 遞推函數(shù):該病五天內潛伏第六天發(fā)病后五天內治愈。 { int sum=0; if(n<=5) // 五天內只有一個潛伏病人。 return 1; else

39、 { sum=Day(n-5)*3+Day(n-1) ; // 第 n天的病總人數(shù)包括 n-1 天潛伏的和發(fā)作的在當天又傳染的人數(shù)再去掉當天治愈的; } //Day(n)=Day(n-5)*3+Day(n-1); return sum; } void main() { int n printf( " 請輸入傳染病發(fā)生后的天數(shù): \n" ); scanf_s( "%d",&n,2); for(int i=1;i<=n;i++) printf(" 第 %d天 ,得病的人數(shù) %d\n",i,Day(i)); syst

40、em( "pause" ); } 運行結果 選做題:( 5 選 3) ( 4) 50 個階梯,你一次可以上一階或兩階,走上去,共有多少種走法?題目分析 這道題讓我想到高中時做過的同樣的一道排列組合題, 但此題要用計算機編程求出具體 數(shù)字,不像高中時只用代數(shù)式表達。 算法構造

41、 假設為 20 階: C( 0 20)+ C( 1 19)+ C( 2 18) + C( 3 17)+ C( 4 16)+ C(5 15) + C( 6 14)+ C ( 7 13) + C( 8 12)+ C (9 11) + C( 10 10) 算法實現(xiàn) #include #include int stairs(int n) { if(n==1)return 1; if(n==0)return 1; return stairs(n-1)+stairs(n-2); // 根據(jù)有 1階

42、依次往上遞推發(fā)現(xiàn)符合斐波那契數(shù)列 } // a[n]=a[n-1]+a[n-2] void main() { int j; printf(" 請輸入樓梯階數(shù): \n"); scanf_s("%d",&j,2); for(int i=1;i<=j;i++) { printf(" 當有 %d 階樓梯 ,共有 %d種走法。 \n",i,stairs(i)); } system("pause"); } 運行結果 數(shù)據(jù)可能過大或者電腦太 low 等了幾分鐘未見結果,根據(jù)后幾階時可判斷是對的。

43、 經驗歸納 有些題看似困難當理清思路也可有據(jù)可循。 ( 2)遞歸將一個整數(shù)輸出。形如654321,輸出 1,2,3,4,5,6 題目分析 將一個整數(shù)逆序輸出可以看做把一個字符串逆序輸出,用指針逐個輸出。 算法構造 reverse( const char *p) 字符串遞推函數(shù):設定字符串指針 *p ; 算法實現(xiàn) 程序源代碼 #include void reverse(const char *p) // 字符串遞推函數(shù):

44、設定字符串指針 *p ; { if(*p==\0) // 指針從右向左移動由于判斷字符串尾部位置; return; reverse(p+1); // 指針向前移動 p+1 printf("%c , ",*p);/ / 輸出當前指針指向的字符; } void main() { char *pString; pString="123456"; printf(" 輸入的字符串: %s\n",pString); reverse(pString); getchar(); } 運行結果

45、 經驗歸納 巧用字符串指針可以簡化程序。 ( 3)用遞歸實現(xiàn)分解質因數(shù)。形如:12=2*2*3 題目分析 質因數(shù) n 即只能被本身和 1 整除的數(shù),在 2 到 可分解。 算法構造  n-1  間篩選能被  n 整除且是質因數(shù)的數(shù)即 bool IsPrime(int num)//  判斷質因數(shù);  if((IsPrime(i))&&( num % i == 0 ))//  判斷除數(shù)是否為質因數(shù);

46、 num = num / i;PrimeFactorization(num); 若是其一則保留對剩下的商繼續(xù)判別;算法實現(xiàn) #include #include // 質因數(shù)判斷函數(shù) bool IsPrime(int num) // 判斷質因數(shù); { int i; for (i = 2; i < num; i++) { if ( num % i == 0 ) { // 如果從 2到 num-1的數(shù)里有能被整除的,說明num不是質因數(shù)。 return false;

47、 } } / / 如果從 2到 num-1的數(shù)里沒有能被整除的,說明 num是質因數(shù)。 return true; } void PrimeFactorization(int num) { int i; for (i=2; i<=num; i++) { if(i == num) { printf("%d",i); } else if((IsPrime(i))&&( num % i == 0 )) // 質因數(shù)判斷函數(shù); { // 將找到的質因數(shù)追加到字符串中。 printf(

48、"%d*",i); // 將剩下部分遞歸分解。 num = num / i; PrimeFactorization(num); break; } } } void main() { int num; printf(" 請輸入一個小于 10 位的整數(shù): \n"); scanf_s("%d",&num,10); printf(" 質因數(shù)分解: \n%d=",num); //調用分解質因數(shù)函數(shù)。 PrimeFactorization(num); printf("\n"); system("pause"); } 運行結果 經驗歸納 弄清題目關鍵字的概念對編程很是關鍵。 五、實驗總結 編程蠻有意思,在這里能夠格物致知看到不一樣的世界。

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!