C 一个简单的函数需要以10种不同的方式实现
我需要一个函数,当给定7时可以返回5,当给定5时可以返回7。但是条件语句是不允许的。 我需要它通过10种不同的技术(都没有条件语句) 然而,我已经用5种不同的方式实现了。如果你能帮我写另外5本,那将是我的荣幸:) 最后,在ruby中C 一个简单的函数需要以10种不同的方式实现,c,ruby,C,Ruby,我需要一个函数,当给定7时可以返回5,当给定5时可以返回7。但是条件语句是不允许的。 我需要它通过10种不同的技术(都没有条件语句) 然而,我已经用5种不同的方式实现了。如果你能帮我写另外5本,那将是我的荣幸:) 最后,在ruby中 def returner(input) return ([5,7]-[input]).pop end 我可以提供另外两种使用逻辑运算符及其排序电路行为的方法: 首先,它的名称: int r(char x){ (x == 7 && (
def returner(input)
return ([5,7]-[input]).pop
end
我可以提供另外两种使用逻辑运算符及其排序电路行为的方法: 首先,它的名称:
int r(char x){
(x == 7 && (x=5)) || ( (x == 5) && (x=7));
return x;
}
int main(){
printf("\n If r(5) then return = %d", r(5));
printf("\n If r(7) then return = %d", r(7));
printf("\n");
return 1;
}
运行:
第二,几天前我看到了这个把戏:
int r(char x){
int l[8] = {0,0,0,0,0,7,0,5};
return l[x];
}
第三个:与我在第一个中使用的一样使用技巧
int r(char x){
(x > 5 && (x=5)) || (x < 7 && (x=7));
return x;
}
50:您自己的XOR
int r(int x){
x = (x & ~2) | (~x & 2) ;
return x;
}
我可以提供另外两种使用逻辑运算符及其排序电路行为的方法: 首先,它的名称:
int r(char x){
(x == 7 && (x=5)) || ( (x == 5) && (x=7));
return x;
}
int main(){
printf("\n If r(5) then return = %d", r(5));
printf("\n If r(7) then return = %d", r(7));
printf("\n");
return 1;
}
运行:
第二,几天前我看到了这个把戏:
int r(char x){
int l[8] = {0,0,0,0,0,7,0,5};
return l[x];
}
第三个:与我在第一个中使用的一样使用技巧
int r(char x){
(x > 5 && (x=5)) || (x < 7 && (x=7));
return x;
}
50:您自己的XOR
int r(int x){
x = (x & ~2) | (~x & 2) ;
return x;
}
这里还有5个:
p RUBY_VERSION
require 'set'
def fun1(x)
[5,7].to_set.delete(x).to_a[0]
end
p fun1(7)
def fun2(x)
a = [5,7].to_set
b = [x].to_set
p a.difference(b).to_a[0]
end
fun2(5)
def fun3(x)
a = [5,7]
a.slice!(a.index(x),1)
p a[0]
end
fun3(5)
def fun4(x)
a = [5,7]
a.delete(x)
p a[0]
end
fun4(5)
def fun5(x)
a = '57'
a = a.rpartition(7.to_s)
p a[a.index(7.to_s)].to_i
end
fun5(7)
输出:
这里还有5个:
p RUBY_VERSION
require 'set'
def fun1(x)
[5,7].to_set.delete(x).to_a[0]
end
p fun1(7)
def fun2(x)
a = [5,7].to_set
b = [x].to_set
p a.difference(b).to_a[0]
end
fun2(5)
def fun3(x)
a = [5,7]
a.slice!(a.index(x),1)
p a[0]
end
fun3(5)
def fun4(x)
a = [5,7]
a.delete(x)
p a[0]
end
fun4(5)
def fun5(x)
a = '57'
a = a.rpartition(7.to_s)
p a[a.index(7.to_s)].to_i
end
fun5(7)
输出:
我不认为这是一个好问题,但我认为这里有机会学习一些不同的想法<代码>i表示输入。使用
i=7
尝试以下操作,然后将“其他任何内容”作为输入。请注意,这些方法都没有对输入值使用数学
注意:需要对这些参数进行调整,以返回作为练习的反向参数
散列。默认情况下,失败的查找返回nil
。可以使用指定默认值
枚举方法-学习它们。在这里,我们只计算一个特定值(7)存在多少个元素
布尔运算符链接-&&
和| |
的结果是成功的表达式或“最少失败”的表达式
i == 7 && 5 // false or 5
(i == 7 && 5) || 0 // 0 or 5
错误地使用和内联异常填充
catch (:"7") do
throw i.to_s.to_sym rescue nil;
// only here if i is not 7 or convertible to "7" AND
// there is no matching catch further up
return 0
end
return 5
同样,如何在不使用if
的情况下重写除法示例。当然,如果函数域只有{5,7},那么即使是这个也不是必需的,因为0永远不可能是[valid]输入-并且无效输入在方法契约之外
return (35 / i rescue 0)
我不认为这是一个好问题,但我认为这里有机会学习一些不同的想法<代码>i表示输入。使用
i=7
尝试以下操作,然后将“其他任何内容”作为输入。请注意,这些方法都没有对输入值使用数学
注意:需要对这些参数进行调整,以返回作为练习的反向参数
散列。默认情况下,失败的查找返回nil
。可以使用指定默认值
枚举方法-学习它们。在这里,我们只计算一个特定值(7)存在多少个元素
布尔运算符链接-&&
和| |
的结果是成功的表达式或“最少失败”的表达式
i == 7 && 5 // false or 5
(i == 7 && 5) || 0 // 0 or 5
错误地使用和内联异常填充
catch (:"7") do
throw i.to_s.to_sym rescue nil;
// only here if i is not 7 or convertible to "7" AND
// there is no matching catch further up
return 0
end
return 5
同样,如何在不使用if
的情况下重写除法示例。当然,如果函数域只有{5,7},那么即使是这个也不是必需的,因为0永远不可能是[valid]输入-并且无效输入在方法契约之外
return (35 / i rescue 0)
有无限多的数学公式将为7的输入产生相同的值:这些“变化”可以无限扩展。但是,考虑所有其他输入值会发生什么情况。在任何情况下,考虑数组/字符串索引、哈希键、消息名和抛出/捕获(我不是开玩笑)。另外还要切换,除非这也是不允许的。第二个实现使用一个条件语句。
int returner(int-input){return(input%7)+5;}
当给定5时,它将返回10,而不是7对我来说像是家庭作业。如果你能帮我写另外5个,那将是一件很愉快的事——当然会,直到你必须在考试中自己写。有无数个数学公式,它们的输入值与7相同:这些“变体”可以无限扩展。但是,考虑所有其他输入值会发生什么情况。在任何情况下,考虑数组/字符串索引、哈希键、消息名和抛出/捕获(我不是开玩笑)。另外还要切换,除非这也是不允许的。第二个实现使用一个条件语句。int returner(int-input){return(input%7)+5;}
当给定5时,它将返回10,而不是7对我来说像是家庭作业。如果你能帮我写另外5个,那将是一件很愉快的事——当然会,直到你必须在考试中自己写。亲爱的,你真的认为=
不是一个条件语句吗?@ArslanAli no=
我指的比较条件运算符是-equals@ArslanAli=
是等于运算符。它测试平等性if
是一个条件语句(它实际上是Ruby中的一个表达式,但这是一个离题)。条件语句“有条件地做某事”,例如根据输入执行一个分支或另一个分支,输入通常是比较运算符的结果。return(x%2==0)
这是对数字的测试:它是偶数还是奇数!你怎么说?它不是条件语句?@ArslanAli它不是条件语句。考虑代码是否被替换为<代码>返回trueIFFIN(x)< /代码> -调用[<代码> TrueIfEven < /C> >方法是否有条件语句?如果这是一个条件语句,那么所有代码(或几乎所有代码,包括数学函数)都是条件语句,但这不是一个实用的分类。取而代之的是,考虑维基百科所说的。亲爱的,你真的认为<代码>=< /代码>不是条件语句吗?@equals@ArslanAli=
是等于运算符。它测试平等性<代码>如果是一条条件语句(它实际上是Ruby中的一个表达式