首页 > 试题广场 >

构造C的歪

[编程题]构造C的歪
  • 热度指数:8660 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 512M,其他语言1024M
  • 算法知识视频讲解
\hspace{15pt}小歪有两个整数 ab ,他想找到这样一个整数 c ,使得这三个整数在经过排序后能成为一个等差数列。

输入描述:
\hspace{15pt}在一行上输入两个整数 a,b\left(1 \leqq a,b \leqq 10^6 \right) 代表已有的数字。


输出描述:
\hspace{15pt}在一行上输出一个整数代表你所找到的第三个数字。

\hspace{15pt}如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。
示例1

输入

3 2

输出

1

说明

\hspace{15pt}\{1,2,3\} 是一个以 1 为首项、1 为公差的等差数列。当然,输出 4 也是一个正确的答案。
示例2

输入

3 2

输出

4
a,b = map(int,input().split())
print(2*b-a)

发表于 2025-03-03 17:08:38 回复(0)

#include <iostream>
using namespace std;

int main() {
    int a, b;
    cin >> a >> b;
    cout << 2*a-b << endl;
}
等差数列的构成原理
发表于 2025-03-10 21:08:42 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int a = in.nextInt();
        int b = in.nextInt();
        int dif = Math.abs(a - b);
        int max = a > b ? a : b;
        int c = max + dif;
        System.out.println(c);
    }
}

发表于 2025-10-15 14:06:19 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int a = in.nextInt();
        int b = in.nextInt();
        System.out.println((a>b?a:b)*3-a-b);
    }
}
发表于 2025-04-15 22:16:39 回复(0)
# a,b是一起输入的,所以要用map依次赋值
a,b=map(int,input().split())

# 计算c的可能值
c1=2*a-b    # a是等差中项
c2=2*b-a    # b是等差中项
if (a+b)%2==0:  # c是等差中项,先要判断两数之和是否可以被2整除
    c3=(a+b)//2
    print(c1 or c2 or c3)
else:
    print(c1 or c2 )
发表于 2025-03-21 12:07:34 回复(0)
while True:
    try:
        a, b = map(int, input().split())
        print(2 * a - b if a > b else 2 * b - a)
    except:
        break

发表于 2025-11-19 16:55:50 回复(0)
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = Math.max(a,b) + Math.abs(a-b);
        System.out.println(c);
    }
}

发表于 2025-11-17 15:52:49 回复(0)
#include <iostream>
#include <cmath>

using namespace std;

int function(int a, int b){
    int delta = abs(a - b);
    return a > b ? b - delta : a - delta;
}

int main() {
    int a = 0;
    int b = 0;
    cin >> a >> b;

    int c = function(a, b);

    cout << c;
}

发表于 2025-11-07 12:18:26 回复(0)
import sys

a, b = sorted(list(map(int, input().split())))
print(str(2*b-a))

发表于 2025-09-20 21:01:03 回复(0)
n,m=map(int,input().split())
d=abs(n-m)
print(max(n,m)+d)

发表于 2025-09-02 15:08:53 回复(0)
终于知道为什么这么奇怪了,这个难度写的是入门
2a-b,2b-a,有时候(a+b)/2都是行 的
发表于 2025-08-05 19:32:50 回复(0)

用num1 num2来接收控制器来的两个整数,计算出他们的差值,找出num1和num2的较小数,用num1减去 他们的差值,即可得到答案。
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int num1 = in.nextInt();
            int num2 = in.nextInt();
            int minornum = Math.min(num1, num2);
            int count = Math.abs(num1 - num2);
            System.out.println(minornum - count);
        }
    }
}

发表于 2025-07-17 10:32:07 回复(0)
a, b = map(int, input().split())
list = sorted([a, b])
x = list[1]-list[0]
print(list[0]-x)

发表于 2025-07-15 11:17:39 回复(0)
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void async function () {
    // Write your code here
    while(line = await readline()){
        let tokens = line.split(' ');
        let a = parseInt(tokens[0]);
        let b = parseInt(tokens[1]);
        if((a+b)%2 == 0){
            console.log((a+b)/2);
        }else{
            let c;
            if(a>b){
                c = a*2 -b;
            }else{
                c = b*2 - a;
            }
            console.log(c);
        }
    }
}()

发表于 2025-07-12 14:37:51 回复(0)
直接用等差公式
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
    vector<int> matrix;
    int a, b;
    cin >> a >> b;
    if(a < b) {
        cout << 2 * b -a;
    }
    else {
        cout << 2 * a - b;
    }
    return 0;
}


发表于 2025-07-04 15:34:21 回复(0)
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void async function () {
    // Write your code here
    while(line = await readline()){

       const num1 = line.split(' ')[0].trim()*1
       const num2 = line.split(' ')[1].trim()*1
       const minus = num1 - num2

       const outputNum = minus > 0 ? minus + num1 : num2 - minus
       console.log(outputNum)
    }
}()
发表于 2025-06-17 10:49:59 回复(0)
一试一个不吱声
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int a = in.nextInt();
            int b = in.nextInt();
            if (b > a) {
                System.out.println(b + b - a);
            } else {
                System.out.println(a + a - b);
            }
            break;
        }
    }
}

发表于 2025-06-10 17:41:18 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        int a = in.nextInt();
        int b = in.nextInt();
        int c = 0;
        if (a > b) {
            int temp = a - b;
            c = a + temp;
        } else if (a < b) {
            int temp = b - a;
            c = b + temp;
        } else if (a == b) {
            c = a;
        }
        System.out.print(c);
    }
}

发表于 2025-05-21 00:39:58 回复(0)
a,b = map(int, input().split())
if int(a) >= 1 and int(b)>=1:
    c =  2*max(a,b) - min(a,b)
    print(c)
else:
    print("请输入两个大于1的整数!")
发表于 2025-05-11 11:28:29 回复(0)
a , b = map(int,input().split())
n = abs(a-b)
c = min(a,b)-n or max(a,b)+n
print(c)
发表于 2025-05-06 10:16:50 回复(0)