布尔数组之谜

输入: 值为0和1的两个元素的数组arr[] 输出: 将两个元素都设为0。

null

规格: 以下是要遵循的规范。

1) 可以保证一个元素为0,但我们不知道它的位置。 2) 我们不能说另一个元素,它可以是0或1。 3) 我们只能补足数组元素,而不能进行和、或多、除等运算…。等 4) 我们不能使用if、else和循环构造。 5) 显然,我们不能直接将0分配给数组元素。

我们有几种方法可以做到这一点,因为我们确信总是有一个零。感谢Devendraiit提出以下三种方法。

方法1

C++

#include <bits/stdc++.h>
using namespace std;
void changeToZero( int a[2])
{
a[ a[1] ] = a[ !a[1] ];
}
// Driver code
int main()
{
int a[] = {1, 0};
changeToZero(a);
cout<< "arr[0] = " <<a[0]<<endl;
cout<< " arr[1] = " <<a[1];
return 0;
}
// This code is contributed by rathbhupendra


C

void changeToZero( int a[2])
{
a[ a[1] ] = a[ !a[1] ];
}
int main()
{
int a[] = {1, 0};
changeToZero(a);
printf ( " arr[0] = %d " , a[0]);
printf ( " arr[1] = %d " , a[1]);
getchar ();
return 0;
}


JAVA

import java.io.*;
class GFG{
public static void changeToZero( int a[])
{
a[a[ 1 ]] = a[ 1 - a[ 1 ]];
}
// Driver code
public static void main(String args[])
{
int [] arr;
arr = new int [ 2 ];
arr[ 0 ] = 1 ;
arr[ 1 ] = 0 ;
changeToZero(arr);
System.out.println( "arr[0]= " + arr[ 0 ]);
System.out.println( "arr[1]= " + arr[ 1 ]);
}
}
// This code is contributed by rohitsingh07052


Python3

def changeToZero(a):
a[ a[ 1 ] ] = a[ not a[ 1 ] ]
return a
# Driver code
if __name__ = = '__main__' :
a = [ 1 , 0 ]
a = changeToZero(a);
print ( " arr[0] = " + str (a[ 0 ]))
print ( " arr[1] = " + str (a[ 1 ]))
# This code is contributed by Yash_R


C#

using System;
class GFG {
public static void changeToZero( int [] a)
{
a[a[1]] = a[1 - a[1]];
}
// Driver code
public static void Main()
{
int [] arr;
arr = new int [2];
arr[0] = 1;
arr[1] = 0;
changeToZero(arr);
Console.WriteLine( "arr[0]= " + arr[0]);
Console.WriteLine( "arr[1]= " + arr[1]);
}
}
// This code is contributed by souravmahato348.


Javascript

<script>
function changeToZero(a)
{
a[a[1]] = a[1 - a[1]];
}
// Driver code
let arr;
arr = [];
arr[0] = 1;
arr[1] = 0;
changeToZero(arr);
document.write( "arr[0] = " + arr[0] + "<br/>" );
document.write( "arr[1] = " + arr[1]);
// This code is contributed by avijitmondal1998
</script>


方法2

C

void changeToZero( int a[2])
{
a[ !a[0] ] = a[ !a[1] ]
}


JAVA

void changeToZero( int [ 2 ]a) {
a[!a[ 0 ]] = a[!a[ 1 ]];
}
// This code is contributed by souravmahato348.


C#

static void changeToZero( int [2]a) {
a[!a[0]] = a[!a[1]];
}
// This code is contributed by souravmahato348.


Javascript

<script>
function changeToZero(a)
{
a[ !a[0] ] = a[ !a[1] ];
}
// This code is contributed by souravmahato348.
</script>


Python3

def changeToZero(a):
a[ !a[ 0 ] ] = a[ !a[ 1 ] ]


方法3 这种方法甚至不需要补充。

C

void changeToZero( int a[2])
{
a[ a[1] ] = a[ a[0] ]
}


JAVA

static void changeToZero( int a[ 2 ])
{
a[ a[ 1 ] ] = a[ a[ 0 ] ]
}
// this code is contributed by shivanisinghss2110


方法4 幸亏 普维 感谢你提出这种方法。

C

void changeToZero( int a[2])
{
a[0] = a[a[0]];
a[1] = a[0];
}


可能还有更多的方法。 如果您发现上述代码不正确,请写下评论,或者寻找其他方法来解决相同的问题。

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享