百鍊-2694-逆波蘭表示式-C語言-遞迴
阿新 • • 發佈:2019-01-30
一道有趣的遞迴問題。
/******************************************** **檔名:百鍊-2694 **Copyright (c) 2015-2025 OrdinaryCrazy **建立人: OrdinaryCrazy **日期:20170806 **描述:百鍊-2694參考答案 **版本:1.0 *********************************************/ #include <stdio.h> #include <stdlib.h> /******************************************** 根據逆波蘭表示式的定義進行遞迴求解 當輸入一個字串時,有2種情況: 1,字串是一個數字,則使用atof(char*)函式轉化為浮點數輸出 2,字串是一個運算子,則對其後的兩個表示式進行相應的運算,輸出運算結果 還有atof函式的定義在stdlib.h裡 *********************************************/ double solve(void) { char a[10]; scanf("%s",a); switch(a[0]) { case '+' : return solve() + solve(); case '-' : return solve() - solve(); case '*' : return solve() * solve(); case '/' : return solve() / solve(); default : return atof(a); } } int main() { printf("%f\n",solve()); return 0; }