编写一个函数读取 number(s, i),它接受一个字符串 s 和一个整数 I,并返回一个由以下组成的对

Posted

技术标签:

【中文标题】编写一个函数读取 number(s, i),它接受一个字符串 s 和一个整数 I,并返回一个由以下组成的对【英文标题】:Write a function read number(s, i) that takes a string s and an integer I, and returns a pair consisting of 【发布时间】:2021-04-23 09:12:27 【问题描述】:

制作计算器 在这个问题中,你必须编写一个函数求值,它接受一个字符串表示 一个简单的数学表达式,例如"(1+2)3",并对其求值以获得结果 数字。 输入字符串可以包括以下任何一种:正数、+、-、、/、(、)。 e 数字可能包含也可能不包含小数部分,例如数字 3 可以表示为“3”或 作为“3.0”或任意数量的零。所有表达式都将用括号括起来,例如你 只会给出“(1+(23))-4”,而不是“1+23-4”。您的实现应该返回 这种形式的任何可能表达的正确结果。 是一项复杂的任务,可能需要多个辅助函数。这是一个建议 1 方法,尽管只要它是正确的,您可能会采取不同的做法:

    编写一个函数读取 number(s, i),它接受一个字符串 s 和一个整数 I,并返回一个 由 (i) 从字符串的第 i 个字符开始的数字和 (ii) 数字的最后一个字符后的索引。例如,读取数字("1+(2.4/3)",3) 应该返回 (2.4,6),因为“2.4”由给定字符串的第 3 到 5 个字符组成。

【问题讨论】:

【参考方案1】:

遍历所有字符,检查条件

double d=0;
int j=0;
int di=-1;
for(j=i;j<s.length();j++)

char c=s.charAt(j);
if(c>='0'&&c<='9')

d=d*10+((int)(c-'0'));

else if(c=='.')
di=j;
else 
break;

if(di>=0)
 d/=Math.pow(10,j-di);

这里d是值,j是索引。

【讨论】:

以上是关于编写一个函数读取 number(s, i),它接受一个字符串 s 和一个整数 I,并返回一个由以下组成的对的主要内容,如果未能解决你的问题,请参考以下文章

编写函数reverse(int number),它的功能是将number逆序输出,在主函数中输入一个整数并调用该函数。

函数不能接受元组输入? [复制]

在plsql中编写函数

Python。重复元素判定。编写一个函数,接受列表作为参数

编写Shell程序,实现功能:计算N!,使用函数的方法实现.

Javascript基础知识盲点总结——函数