1. 程式人生 > >python基礎練習--利用遞迴方法求階乘!

python基礎練習--利用遞迴方法求階乘!

題目:利用遞迴方法求5!

  1 # -*- coding:utf-8 -*-
  2 n = input('請輸入一個整數:')
  3 def fib(n):
  4     sum1 = 0
  5     if n == 0:
  6         sum1 = 1
  7     else:
  8         sum1 = n*fib(n-1)
  9     return sum1
 10 
 11 print '%d!=%d'%(n,fib(n))

結果為:
[email protected]:~/pythoncl/python練手100題$ python 41.py 
請輸入一個整數:5
5!=120
[email protected]
:~/pythoncl/python練手100題$ python 41.py 請輸入一個整數:4 4!=24 [email protected]:~/pythoncl/python練手100題$ python 41.py 請輸入一個整數:9 9!=362880


相關推薦

python基礎練習--利用方法!

題目:利用遞迴方法求5! 1 # -*- coding:utf-8 -*- 2 n = input('請輸入一個整數:') 3 def fib(n): 4 sum1 = 0 5 if n == 0: 6 sum1 =

java用方法

一個正整數的階乘,是所有不大於該數的正整數的積,並且0的階乘為1,n的階乘寫作n!,由1808年基斯頓·卡曼(Christian Kramp,1760~1826)引進這個表示法。 java程式碼: //用遞迴方法求階乘 public class Fact

Java:利用方法鴨子數

問題描述:        一個人趕著鴨子去每個村莊賣,每經過一個村子賣去所趕鴨子的一半又一隻。這樣他經過了七個村子後還剩兩隻鴨子,問他出發時共趕多少隻鴨子?經過每個村子賣出多少隻鴨子? 題目分析:      設經過第n

利用方法一個數組的最大值

1、直接利用遞迴: package programmer; import java.util.Scanner; /* * 利用遞迴演算法求最大值 */ public class MaxRecursion { public int maxRecursion(int[

【程式26】 利用方法5!

【題目】利用遞迴方法求5! #include<stdio.h> #define N 5 int main() { int fun(int n); int c=fun(N); printf("%d!=%d\n",N,c); return 0; } i

【程式22】 題目:利用方法5!。

/* 2017年3月7日16:47:13 java基礎50道經典練習題 例22 Athor: ZJY Purpose: 【程式22】 題目:利用遞迴方法求5!。 程式分析:遞迴公式:

使用(附帶詳細解答)

c++/c語言中,使用遞迴求階乘詳解 #include <iostream> using namespace std; //問題:利用遞迴方法求n的階乘。 //先寫一個遞迴函式,主函式中呼叫 int jc(int n){ //if用1判斷遞迴是否結束,同時n=1時

C語言——

很多同學不知道怎麼用遞迴 的方法敲出一個數字的階乘,其實 遞迴就是函式不斷的呼叫自己,具體如下: 程式我簡化了一下 #include<stdio.h> int main() { int m,n; printf("輸入你要計算的階乘的數字:\n"); scanf("%d",&

oracle 學習之--------利用演算法實現

-------------------------- --遞迴演算法實現階乘      -- --create by aven!       -- -------------------------- CREATE OR REPLACE PROCEDURE TEST01(

C語言用方法求解

一般我們求解階乘用的時迭代的方法,即使用迴圈語句來實現功能,這次我們用的是遞迴的方法: long int Factral( long int N ){ if( N > 1 ){ retur

歸--利用方法6!

str class ret -- 使用遞歸 args and pre div 利用遞歸方法求6! 使用遞歸時,關鍵問題是弄明白遞歸表達式的含義以及遞歸的終止條件 1 package com.test01; 2 3 public class JianDa03 {

Java:利用方法實現角谷定理

問題描述:        角谷定理。輸入一個自然數,若為偶數,則把它除以2,若為奇數,則把它乘以3加1。經過如此有限次運算後,總可以得到自然數值1。求經過多少次可得到自然數1。 如:輸入22, 輸出 22 11 34 17 52 26 1

方法n的

程式碼: #include<iostream> using namespace std; int fact(int n); int main() { int n; loop: cin >> n; cout << fact(n);

利用演算法時間複雜度

  遞迴演算法時間複雜度的計算方程式一個遞迴方程:      在引入遞迴樹之前可以考慮一個例子:   T(n) = 2T(n/2) + n2   迭代2次可以得:   T(n) = n2 + 2(2T(n/4) + (n/2) 2)   還可以繼續迭代,將其完全展

電子科技大學推免複試題:利用方法找出一個數組中的最大值和最小值

/**************************** 編寫一個函式,使之能完成以下功能: 利用遞迴方法找出一個數組中的最大值和最小值,要求遞迴呼叫函式的格式如下: MinMaxValue(arr,n,&max,&min),其中arr是給定的陣列,n是陣

方法X的y次方

/**  * @author zhengxiangming  *  在 Junit裡測試通過的 * TODO To change the template for this generated type comment go to  * Window - Preference

方法n勒讓德多項式的值(C++)

#include <iostream> using namespace std; float p(float,float); int main() {float n,x;cin>>n>>x;cout<<p(n,x)<&l

方法斐波那契數列的第n項

問題描述 第一項為0 第二項為1 ….. 第n項為前兩項之和 程式碼實現 max = int(input()) def fib(max): n,a,b=0,0,1 whi

方法n的(C語言)

用遞迴方法求n! #include<stdio.h> int main() { int fac(int n); int n; int y; printf("

p219用方法n勒讓德多項式的值

#include<cstdio> #include<algorithm> #include<iostream> #include<cmath> #in