Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 一个简单的函数需要以10种不同的方式实现_C_Ruby - Fatal编程技术网

C 一个简单的函数需要以10种不同的方式实现

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 && (

我需要一个函数,当给定7时可以返回5,当给定5时可以返回7。但是条件语句是不允许的。 我需要它通过10种不同的技术(都没有条件语句)

然而,我已经用5种不同的方式实现了。如果你能帮我写另外5本,那将是我的荣幸:)

最后,在ruby中

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中的一个表达式