在字符串中添加数学符号[关闭]
Posted
技术标签:
【中文标题】在字符串中添加数学符号[关闭]【英文标题】:Adding math symbols in a string [closed] 【发布时间】:2012-09-18 04:31:11 【问题描述】:我如何在不使用+
符号的情况下添加a
和b
,因为我在c
变量中分配了+
符号?
我知道如何使用上面的数据形成一个表达式,如下面的代码所示,但我不知道如何使用 NSExpression 获取该表达式的输出。
这是我的代码:
int a=10;
int b=20;
NSString *c=@"+";
NSString *d=[NSString stringWithFormat:@"%d%@%d",a,c,b];
nslog(@"d=%@",d);//d=10+20
在这之后,我如何得到答案 30?
【问题讨论】:
在[Java]
或[Objective-C]
?
看看他的代码,我会说 Objective-C。
你有什么样的工作场所?
Objective-C 打印结果
@sayalSnaking:你为什么把这个问题的内容改成完全不同的东西??如果他不能阅读原始问题,没有人会理解答案!你应该发布一个新问题。
【参考方案1】:
如果要求a和b之和,可以:
-(-a-b)
【讨论】:
【参考方案2】:使用数学,您可以将两个数字相加,而无需像这样使用加法
b*=-1
int result = a-b;
【讨论】:
虽然我觉得这个问题有点奇怪,但这是最聪明的解决方法!【参考方案3】:使用以下代码添加两个不带“+”号的数字。
int add(int x, int y)
int carry = 0;
int result = 0;
int i;
for(i = 0; i < 32; ++i)
int a = (x >> i) & 1;
int b = (y >> i) & 1;
result |= ((a ^ b) ^ carry) << i;
carry = (a & b) | (b & carry) | (carry & a);
return result;
【讨论】:
+
循环中甚至还有两个 for
标志:)。
@Yogendra Joshi 你仍然可以避免 + 登录你的循环;)【参考方案4】:
int a = 10;
int b = 20;
NSString *c = @"+";
NSString *s = [NSString stringWithFormat:@"%d %@ %d", a, c, b];
NSExpression *e = [NSExpression expressionWithFormat:s];
int result = [[e expressionValueWithObject:nil context:nil] intValue];
NSLog(@"%d", result);
【讨论】:
感谢马丁我得到了结果。 :NSArray *quantityPrice = [[NSArray alloc] initWithObjects:@"1",@"2",@"3",nil]; NSExpression *e= [NSExpression expressionForFunction:@"add:to:" arguments:quantityPrice]; int result = [[e expressionValueWithObject:nil context:nil] intValue];使用此代码时出现错误。 @SnakingPrabhu:有一个更简单的解决方案:NSArray *quantityPrice = [[NSArray alloc] initWithObjects:@"1",@"2",@"3",nil]; int result = [[quantityPrice valueForKeyPath:@"@sum.self"] intValue];
感谢马丁我得到了输出...而不是求和函数,其他函数是 avg、mul、div、sub 等工作 r 不【参考方案5】:
您可以编写一个函数,从字符串中提取运算符(在本例中为 +)并据此进行计算。我敦促您至少观看斯坦福大学programming course by Paul Hegarty 的前几集。您将构建一个计算器,它会做一些您想知道的事情来解决您的问题。
【讨论】:
以上是关于在字符串中添加数学符号[关闭]的主要内容,如果未能解决你的问题,请参考以下文章