斐波那契数列(循环)

斐波那契数列(循环)

#include <stdio.h>

int main(int argc, const char * argv[]) {
    int c=0;
    int d=0;
    void A(int);
    void S(int);
    int out=0;
    do{
        printf("请输入模式:1:第n项;2.前n项和\n");
        scanf("%d",&d);
        while(d!=1&&d!=2){
            printf("请输入正确模式1:第n项;2.前n项和\n");
            scanf("%d",&d);
            if(d==1||d==2){
                break;
            }else{
                continue;
            }
        }
        printf("请输入n=");
        scanf("%d",&c);
        while(c<=0){
            printf("请输入正确的n=");
            scanf("%d",&c);
        }
        switch(d)
        {
            case 1:A(c);break;
            case 2:S(c);break;
        }
        printf("继续请按1,退出请按其他数字\n");
        scanf("%d",&out);
        c=0;
        d=0;
    }while(out==1);
    return 0;
}

void A(int c){
    int a=1;
    int b=1;
    int cnt=2;
    int sum=0;
    if(c<=2){
        printf("第%d项是1",c);
    }
    else
    {
        do{
            sum=a+b;
            a=b;
            b=sum;
            cnt++;
        }while(cnt<=c-1);
    printf("第%d项是%d\n",c,sum);
    }
}

void S(int c){
    int a,b,d;
    int sum=0;
    int cnt=3;
    if(c==1){
        printf("前%d项和是1\n",c);
    }else if(c==2){
        printf("前%d项和是2\n",c);
    }else{
        for(a=1,b=1,sum=2;cnt<=c;cnt++){
            d=a;
            b=b+d;
            sum=sum+b;
        }
        printf("前%d项和是%d\n",c,sum);
    }
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值