写一个函数 read number(s, i) 接受一个字符串 s 和一个整数 I,以及 returns 一对由
Write a function read number(s, i) that takes a string s and an integer I, and returns a pair consisting of
制作计算器
在这个问题中,你必须编写一个函数评估,它接受一个字符串表示
一个简单的数学表达式,例如"(1+2)3",对其求值得到结果
数字。
输入字符串可能包括以下任何一项:正数、+、-、、/、(、)。电子
数字可能包含也可能不包含小数部分,例如数字 3 可以写成 "3" 或
作为“3.0”或任意数量的零。所有表达式都将被完全括起来,例如你
只会给出“(1+(23))-4”,而不是“1+23-4”。您的实施应该 return
此形式的任何可能表达式的正确结果。
是一项复杂的任务,可能需要多个辅助函数。这是一个建议
1个
方法,尽管你可以做不同的,只要它是正确的:
- 写一个函数 read number(s, i) 接受一个字符串 s 和一个整数 I,returns a
对由 (i) 从字符串的第 i 个字符开始的数字,和 (ii)
数字最后一个字符后的索引。例如,读取 number("1+(2.4/3)",3)
应该 return (2.4,6) 因为“2.4”是由给定字符串的字符 3 到 5 组成的。
遍历所有字符,并检查条件
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是索引。
制作计算器 在这个问题中,你必须编写一个函数评估,它接受一个字符串表示 一个简单的数学表达式,例如"(1+2)3",对其求值得到结果 数字。 输入字符串可能包括以下任何一项:正数、+、-、、/、(、)。电子 数字可能包含也可能不包含小数部分,例如数字 3 可以写成 "3" 或 作为“3.0”或任意数量的零。所有表达式都将被完全括起来,例如你 只会给出“(1+(23))-4”,而不是“1+23-4”。您的实施应该 return 此形式的任何可能表达式的正确结果。 是一项复杂的任务,可能需要多个辅助函数。这是一个建议 1个 方法,尽管你可以做不同的,只要它是正确的:
- 写一个函数 read number(s, i) 接受一个字符串 s 和一个整数 I,returns a 对由 (i) 从字符串的第 i 个字符开始的数字,和 (ii) 数字最后一个字符后的索引。例如,读取 number("1+(2.4/3)",3) 应该 return (2.4,6) 因为“2.4”是由给定字符串的字符 3 到 5 组成的。
遍历所有字符,并检查条件
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是索引。