C语言中用函数实现录入信息模块,C语言程序设计用函数实现模块化程序设计(73页)-原创力文档...
31/73 #include void main ( ) { int n, p; printf (
=?);scanf (%d, &n); p = fact (n); printf (%d!=%d\n, n, p); } int fact ( int n ) { int r; if ( n == 1 ) r = 1; else r=n* fact (n-1); /* 遞歸調用 */ return (r);} ? 用遞歸函數求 n! – n! = 1 當 n = 1 時 – n! = n * (n-1)! 當 n > 1 時 32/73 void main( ) { … p=fact(4); … } fact( 4 ) { … r=4*fact(3); … return 24 } fact( 3 ) { … r=3*fact(2); … return 6 } fact(2 ) { … r=2*fact(1); … return 2 } fact(1 ) { … r=1; … return 1 } 遞歸調用執行過程 遞 推 回 推 33/73 3 .編制遞歸函數的方法 ⑴ 數值型問題遞歸函數的編程方法 對于數值型問題,首先要找出解題的數學公式, 這個公式必須是 遞歸定義 的,且所處理的 對象要 有規律地遞增或遞減 ,然后確定 遞歸結束條件 。 【例 8.17 】編一遞歸函數求 x n 。 思路:首先把 x n 轉化成遞歸定義的公式 x n = 1 ( n=0 ) x × x n - 1 ( n>0 ) 再找出遞歸結束條件:當 n=0 時, x n =1 。 34/73 程序如下: #include long xn(int x,int n) { long f=0; if (n<0) printf(
<0,data error!\n); else if (n==0) f=1; else f=x*xn(x,n-1); return (f); } void main( ) { int n,x; long y; scanf(%d,%d,&x,&n); y=xn(x,n); printf(%ld\n,y); } 程序運行情況如下: 2,10 ? 1024 35/73 Hanoi( 漢諾塔問題) A B C
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的C语言中用函数实现录入信息模块,C语言程序设计用函数实现模块化程序设计(73页)-原创力文档...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 对linux做一个简单介绍,对“Fork
- 下一篇: android compile使用方法,