三个整数

题目内容:输入三个整数x,y,z,求得对其操作的最少次数使得三个数全部相等,可执行的两个操作是:

(1)从xyz中选择两个都加1;

(2)从xyz中选择一个加2;

Java解题:思路很简单,比较直接也比较笨的方法吧。先将三个数进行从小到大排序,计算最大的数与另外两个数的差,可以分成三种情况。

import java.util.Arrays;
import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
	Scanner str=new Scanner(System.in);
	int[] a=new int[3];
	a[0]=str.nextInt();
	a[1]=str.nextInt();
	a[2]=str.nextInt();
	Arrays.sort(a);
	int count=0;
    if((a[2]-a[0])%2==0 && (a[2]-a[1])%2==0) {
    	count=(a[2]-a[0])/2+(a[2]-a[1])/2;
    }
    else if((a[2]-a[0])%2!=0 && (a[2]-a[1])%2!=0) {
    	count=(a[2]-a[0])<(a[2]-a[1])?(a[2]-a[0]):(a[2]-a[1])+(a[1]-a[0])/2;
    }
    else {
    	int b1=a[2]-a[0];int b2=a[2]-a[1];
    		count=1+b2+(b1+1-b2)/2;
    	}
    System.out.println(count);
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值