【发布时间】:2019-06-27 09:57:28
【问题描述】:
我正在帮助我的女儿完成 c 编程入门作业,她的作业包含一个简单的菜单,如下所示:
Please choose an option below:
------------------------------
1. Linear time
2. Logarithmic time
3. Exponential time
现在,通常很容易确定菜单选项是什么,但不允许她使用逻辑运算符、关系运算符、位运算符或选择结构。我们一直在尝试使用模数,但无济于事。这甚至可能吗?她基本上只能使用+, -, *, /, and %。以及简单的变量。
到目前为止,我们提出的唯一解决方案是使用相等性:
(choice==1)*n + (choice==2)*log(n) + (choice==3)*(n*n)
其中n 是要排序的数据集的大小,但这是不允许的。
【问题讨论】:
-
洛根问a comparable question;但是,他选择的解决方案是用特殊变量表示的。我们正在寻求更通用的解决方案。
-
可以使用位运算符吗?
-
不,不允许使用位运算符。
-
教练说这些值永远只能是 1、2 或 3。
-
@ChrisHeady 这可能不是优化,这取决于。此外,很少需要编写无分支代码。
标签: c mathematical-expressions