题目描述
牛牛参加了一场考试,考试包括n道判断题,每做对一道题获得1分,牛牛考试前完全没有准备,所以考试只能看缘分了,牛牛在考试中一共猜测了t道题目的答案是"正确",其他的牛牛猜为"错误"。考试结束后牛牛知道实际上n道题中有a个题目的答案应该是"正确",但是牛牛不知道具体是哪些题目,牛牛希望你能帮助他计算可能获得的最高的考试分数是多少。
输入描述:
输入包括一行,一行中有三个正整数n, t, a(1 ≤ n, t, a ≤ 50), 以空格分割
输出描述:
输出一个整数,表示牛牛可能获得的最高分是多少。
示例1:
输入
3 1 2
输出
2
我的解法
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
int n=sc.nextInt();
int t=sc.nextInt();
int a=sc.nextInt();
//输入校验
if(n<t||n<a){
return;
}
//输出结果
int answer1=(int)Math.min(t,a);
int answer2=(int)Math.min(n-t,n-a);
System.out.println(answer1+answer2);
}
}
}
别人比较好的解法
#include<stdio.h>
int min(int a,int b){return a<b?a:b;}
int main(){
int n,t,a;
scanf("%d%d%d",&n,&t,&a);
printf("%d",min(n-t,n-a)+min(t,a));
}
#include <stdio.h>
#include <stdlib.h>
#define FAIL 0
#define SUCCESS 1
#define MAX 100000000
int main()
{
int n,t,a,res;
scanf("%d %d %d",&n,&t,&a);
res = n - abs(t-a);//绝对值函数,需要导入头文件stdlib.h才能使用
printf("%d",res);
return 0;
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main{
public static void main(String[] args)throws Exception{
BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
String[] str=bf.readLine().split(" ");//以空格切分成几个子串
int n=Integer.parseInt(str[0]);//将字符串转换成整数
int t=Integer.parseInt(str[1]);
int a=Integer.parseInt(str[2]);
if(t>a){
System.out.println(n+a-t);
}else{
System.out.println(n+t-a);
}
}
}