首页 > 其他分享 >(简单)计算斐波那契数列与阶乘

(简单)计算斐波那契数列与阶乘

时间:2023-08-12 10:13:08浏览次数:39  
标签:elif factorial echo 斐波 result 阶乘 那契 eq

斐波那契数列

python

def fibonacci(n):
    if n <= 0:
        return "Invalid input"
    elif n == 1:
        return 0
    elif n == 2:
        return 1
    else:
        prev_1 = 0
        prev_2 = 1
        for _ in range(n - 2):
            current = prev_1 + prev_2
            prev_1, prev_2 = prev_2, current
        return prev_2

shell

#!/bin/bash

fibonacci() {
    local n=$1
    if [ $n -le 0 ]; then
        echo "Invalid input"
    elif [ $n -eq 1 ]; then
        echo 0
    elif [ $n -eq 2 ]; then
        echo 1
    else
        prev_1=0
        prev_2=1
        for ((i=2; i<n; i++)); do
            current=$((prev_1 + prev_2))
            prev_1=$prev_2
            prev_2=$current
        done
        echo $prev_2
    fi
}

# 测试函数
echo $(fibonacci 5)  # 输出:3
echo $(fibonacci 8)  # 输出:13

阶乘

思路是一样的,只是算式不一样,代入几何坐标中会更好理解

python

def factorial(n):
    if n < 0:
        return "Invalid input"
    elif n == 0 or n == 1:
        return 1
    else:
        result = 1
        for i in range(2, n + 1):
            result *= i
        return result

print(factorial(5))  # 输出:120
print(factorial(8))  # 输出:40320

shell

#!/bin/bash

factorial() {
    local n=$1
    if [ $n -lt 0 ]; then
        echo "Invalid input"
    elif [ $n -eq 0 ] || [ $n -eq 1 ]; then
        echo 1
    else
        result=1
        for ((i=2; i<=n; i++)); do
            result=$((result * i))
        done
        echo $result
    fi
}

# 测试函数
echo $(factorial 5)  # 输出:120
echo $(factorial 8)  # 输出:40320

标签:elif,factorial,echo,斐波,result,阶乘,那契,eq
From: https://www.cnblogs.com/dewan/p/17624385.html

相关文章

  • 关于斐波那契数列的有趣性质--zhengjun
    思路来自这里。\(\operatorname{fib}(1)=\operatorname{fib}(2)=1,\operatorname{fib}(n)=\operatorname{fib}(n-1)+\operatorname{fib}(n-2),n\ge3\)那么:\(\sum\limits_{i=1}^n\operatorname{fib}^2(i)=\operatorname{fib}(n)\operatorname{fib}(n+1)\)可以考虑一下几......
  • 斐波那契数列
    斐波那契数列简介\(F(n)=F(n-1)+F(n-2)(2\len)\)......
  • 【C语言】递归和迭代(斐波那契数列问题)
    1.递归算法一般用于解决三类问题:问题解的定义是按递归定义的(如阶乘)。问题解法由回溯算法实现(如数字排列组合问题)。数据的结构形式是按递归定义的(树的遍历,图的搜索、嵌套列表)。2.什么是递归呢?......
  • 动态规划01: 斐波那契数列模型
    第N个泰波那契数(easy)题目链接:1137.第N个泰波那契数题目描述:泰波那契序列Tn定义如下:T~0~=0,T~1~=1,T~2~=1,且在n>=0的条件下T~n+3~=T~n~++T~n+1~+T~n+2~给你整数n,请返回第n个泰波那契数Tn的值。示例1:输入:n=4输出:4解释:T_3=0......
  • T1173 阶乘和
    T1173阶乘和题目传送门首先,题目里说了高精度,那还想什么?这里介绍一个有亿点点难懂的方法上课!第一步首先,先建立一个结构体来模拟大整数类。结构体不仅可以包含成员变量,还能定义成员函数。代码如下:#definemaxn100structBigint{intlen,a[maxn];//为了兼顾效率和复......
  • C语言-计蒜客-斐波那契数列(非数组)
    小蒜蒜最近学习了斐波那契数列。斐波那契数列是指这样的数列:数列的第一个和第二个数都为1、1,接下来每个数都等于前面2个数之和。给出一个正整数k,要求斐波那契数列中第k个数是多少。输入格式输入一行,包含一个正整数k。(1≤k≤46)输出格式输出一行,包含一个正整数,表示斐波那......
  • 实现阶乘的运算
    #include<stdio.h>intmain(){unsignedlonglonginta=1;unsignedlonglongintb=0;unsignedlonglongintc=0;scanf("%llu",&c);getchar();for(b=1;b<=c;b+=1){a=a*b;}pr......
  • 剑指 Offer 10- I. 斐波那契数列
    写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项(即F(N))。斐波那契数列的定义如下:F(0)=0,F(1)=1F(N)=F(N-1)+F(N-2),其中N>1.斐波那契数列由0和1开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模1e9+7(1000000007),如计算初始结果为:10......
  • Java入门题-20!阶乘
    重要:由于阶乘的特殊性,结果可能过大,最好使用存储范围更大的long处理问题,而不是使用int、short、byte代码:主要利用循环语句解决阶乘问题longtotal=1;for(inti=1;i<21;i++){total*=i;}System.out.println(total);......
  • 阶乘
    #include<iostream>usingnamespacestd;inta(intn){if(n<=2){return1;}returna(n-1)+a(n-2);//a(n-1)*n}intmain(intargc,char**argv){system("pause");intN;cin>>N;cout<<a(N)&......