一道有趣的递归问题。
/******************************************** **文件名:百炼-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; }