C++ 不使用任何控制语句为变量赋值

C++ 不使用任何控制语句为变量赋值

给定四个整数’a’、’b’、’y’和’x’,其中’x’只能是零或一。你的任务如下:

  • 如果’x’是零,则将值’a’赋给变量’y’
  • 如果’x’是一个,则将值’b’赋给变量’y’。

不允许使用任何条件运算符(包括三元运算符)。

例子 :

输入: a = 3, b = 7, x = 1
输出: y = 7

输入: a = 3, b = 7, x = 0
输出: y = 3

思路是创建一个大小为2的数组,其中第一个元素是’a’,第二个元素是’b’。我们使用x在数组中进行索引。

实现:

// CPP program to pick a value among two
// according to value of a third variable.
#include <iostream>
using namespace std;
 
// Returns a if x is 0 and returns
// b if x is 1.
int assignValue(int a, int b, bool x)
{
    int arr[] = {a, b};
 
    return(arr[x]);
}
 
// Driver code
int main()
{
    int y = assignValue(3, 7, 0);
    cout << y;
    return 0;
}
// C program to pick a value among two
// according to value of a third variable.
#include <stdio.h>
#include <stdbool.h>
 
// Returns a if x is 0 and returns
// b if x is 1.
int assignValue(int a, int b, bool x)
{
    int arr[] = {a, b};
 
    return(arr[x]);
}
 
// Driver code
int main()
{
    int y = assignValue(3, 7, 0);
    printf("%d",y);
    return 0;
}
 
// This code is contributed by kothvvsaakash.
// Java program to pick a value among two
// according to value of a third variable.
class GFG {
 
    // Returns a if x is 0 and returns
    // b if x is 1.
    static int assignValue(int a, int b, int x)
    {
        int arr[] = {a, b};
 
        return (arr[x]);
    }
 
    // Driver code
    public static void main(String[] args)
    {
        int y = assignValue(3, 7, 0);
        System.out.println(y);
    }
}
 
// This code is contributed by  Smitha Dinesh Semwal.
# Python 3 program to
# pick a value among two
# according to value
# of a third variable.
 
# Returns a if x
# is 0 and returns
# b if x is 1.
def assignValue(a, b, x):
 
    arr = [a, b]
    return(arr[x])
 
 
# Driver code
y = assignValue(3, 7, 0)
 
print(y)
 
# This code is contributed by
# Smitha Dinesh Semwal
// C# program to pick a value among two
// according to value of a third variable.
using System;
 
publicclass GFG {
  
    // Returns a if x is 0 and returns
    // b if x is 1.
    static int assignValue(int a, int b, int x)
    {
        int []arr = {a, b};
  
        return (arr[x]);
    }
  
    // Driver code
    public static void Main()
    {
        int y = assignValue(3, 7, 0);
        Console.WriteLine(y);
    }
}
// This code is contributed by PrinciRaj1992
<?php
// PHP program to pick a value
// among two according to value
// of a third variable.
 
// Returns a if x is 0 and
// returns b if x is 1.
 
function assignValue(a,b, x)
{
    arr = array(a,b);
 
    return(arr[x]);
}
 
// Driver code
y = assignValue(3, 7, 0);
echoy;
 
// This code is contributed by ajit
?>
<script>
// javascript程序选择两个值中的一个,根据第三个变量的值。
// 如果x为0,则返回a,如果x为1,则返回b。
function assignValue(a , b , x) {
    var arr = [ a, b ];
    return (arr[x]);
}
// Driver code
var y = assignValue(3, 7, 0);
document.write(y);
// 这段代码由todaysgaurav贡献。
</script>```  

Output

3

时间复杂度: O(1)
辅助空间: O(1)

另一种解法:

// C++程序选择两个值中的一个,根据第三个变量的值。
#include <iostream>
using namespace std;
// 如果x为0,则返回a,如果x为1,则返回b。
int assignValue(int a, int b, bool x)
{
    return (1 - x)*a + x*b;
}
// Driver code
int main()
{
    int y = assignValue(3, 7, 0);
    cout << y;
    return 0;
}
// C程序选择两个值中的一个,根据第三个变量的值。
#include <stdio.h>
#include <stdbool.h>
// 如果x为0,则返回a,如果x为1,则返回b。
int assignValue(int a, int b, bool x)
{
    return (1 - x)*a + x*b;
}
// Driver code
int main()
{
    int y = assignValue(3, 7, 0);
    printf("%d",y);
    return 0;
}
// 这段代码由kothvvsaakash贡献。
// Java程序选择两个值中的一个,根据第三个变量的值。
import java.io.*;
class GFG {
// 如果x为0,则返回a,如果x为1,则返回b。
static int assignValue(int a, int b, int x)
{
    return (1 - x) * a + x * b;
}
// Driver code
public static void main (String[] args)
{
    int y = assignValue(3, 7, 0);
    System.out.println(y);
}
}
// 这段代码由ShubhamCoder贡献。
# Python3程序选择两个值中的一个,根据第三个变量的值。
# 如果x为0,则返回a,如果x为1,则返回b。
def assignValue(a, b, x):
    return (1 - x) * a + x * b
# Driver code
y = assignValue(3, 7, 0)
print(y)
# 这段代码由ShubhamCoder贡献。
// C#程序选择两个值中的一个,根据第三个变量的值。
using System;
class GFG {
// 如果x为0,则返回a,如果x为1,则返回b。
static int assignValue(int a, int b, int x)
{
    return (1 - x) * a + x * b;
}
// Driver code
public static void Main()
{
    int y = assignValue(3, 7, 0);
    Console.WriteLine(y);
}
}
// 这段代码由ShubhamCoder贡献。
<script>
// javascript程序选择两个值中的一个,根据第三个变量的值。
// 如果x为0,则返回a,如果x为1,则返回b。
function assignValue(a , b , x) {
    return (1 - x) * a + x * b;
}
// Driver code
var y = assignValue(3, 7, 0);
document.write(y);
// 这段代码由Rajput-Ji贡献。
</script>```  

Output

3

时间复杂度: O(1)

辅助空间: O(1)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 示例