我解决了这个问题:
在数学的 USE 中,决定不给出使用大于 5 的数字的问题,例如 6、10 等。(他们现在被认为是困难的,不需要学习)。输入方程。需要确定是否可以在考试中给出(任何非数字字符以及自然数都可以出现在等式中)。
我的决定:
string @int = string.Empty;
foreach (char ch in s.ToCharArray())
if (char.IsDigit(ch))
{
@int += ch.ToString();
int result = int.Parse(@int);
if (result > 5)
{
ege = false;
}
@int = string.Empty;
}
此代码从字符串中读取一个数字(一位数)并检查它是否大于 5。我该如何修复它,以便它可以计算由任何字符分隔的任何数字,两位数和五位数字(等)?
匆忙草拟了一个带有嵌套循环的版本
您也可以尝试使用 regex 选项,但 regex 会运行得更慢。
UPD。稍微修正了算法
一个循环且无索引的简单算法
这是一个更优化的算法,它只检查无效表达式的充分条件:我们查看字符串,如果我们遇到一个数字 - 我们检查它是否大于 5,如果是 - 返回 false,否则如果它大于0 我们查看下一个字符,如果它是数字 - 返回 false。如果循环成功完成,则返回 true。
我们检查: