1. 程式人生 > 實用技巧 >棧——實驗及提升訓練

棧——實驗及提升訓練

  1. 參考連結:https://www.cnblogs.com/blogxjc/p/11287961.html,https://www.cnblogs.com/Roni-i/p/8586332.html,
    #include <stdlib.h>
    #include <stdio.h>
    // 自己定義需要的棧結構,及棧基本操作函式,假設運算元都是整數
    #define maxn  100005
    typedef int DataType ;
    struct stack
    {
       DataType data[maxn];
    };
    
    /*在此定義並完成第一關函式,參考main要求*/
    
    int result(int n,int
    m,int a,int x)//分別表示n站,最後一站下車的人數m,始發站上車人數a,求第x站時車上的人數 { struct stack pstack; pstack.data[1]=1; pstack.data[2]=1; for (int i = 3; i <=n ; ++i) { pstack.data[i]=pstack.data[i-1]+pstack.data[i-2]; } DataType ans; ans=(m-(pstack.data[n-3]+1)*a)/(pstack.data[n-2]-1); ans=(pstack.data[x-2
    ]+1)*a+(pstack.data[x-1]-1)*ans; return ans; }

    標頭檔案

    #include <stdio.h>
    #include <stdlib.h>
    #include "stack.h"
    
    
    int main()
    {
        int n,m,a,x ;//分別表示n站,最後一站下車的人數m,始發站上車人數a,求第x站時車上的人數
        scanf("%d%d%d%d",&n,&m,&a,&x);
        printf("%d",result(n,m,a,x));
    }

    主函式