首页 > 试题广场 >

A+B和C (15)

[编程题]A+B和C (15)
  • 热度指数:157658 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
给定区间[-231, 231]内的3个整数A、B和C,请判断A+B是否大于C。

输入描述:
输入第1行给出正整数T(<=10),是测试用例的个数。随后给出T组测试用例,每组占一行,顺序给出A、B和C。整数间以空格分隔。


输出描述:
对每组测试用例,在一行中输出“Case #X: true”如果A+B>C,否则输出“Case #X: false”,其中X是测试用例的编号(从1开始)。
示例1

输入

4<br/>1 2 3<br/>2 3 4<br/>2147483647 0 2147483646<br/>0 -2147483648 -2147483647

输出

Case #1: false<br/>Case #2: true<br/>Case #3: true<br/>Case #4: false
推荐
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
        int i=0;
        int num=0;
        long a,b,c;
        a=0;b=0;c=0;
      
            num=sc.nextInt();
            while(i++<num){
                a=sc.nextLong();
                b=sc.nextLong();
                c=sc.nextLong();
                if((a+b)>c){
                    System.out.println("Case #"+i+":"+" true");
                }else{
                    System.out.println("Case #"+i+":"+" false");
                }
            }    
    }

}
一把辛酸泪T_T,没做过OJ的记得java类名为Main,此题大家记得测试的数据定义为long类型,case首字母大写,要与题干要求一致,无力吐槽。。。。
编辑于 2015-06-19 17:40:10 回复(44)

python 4行解法:

a=int(input())
for i in range(a):
    b,c,d=map(int,input().split())
    print("Case #"+str(i+1)+": true" if b+c>d else "Case #"+str(i+1)+": false")
发表于 2017-10-09 11:17:42 回复(8)
#include <stdio.h>
#include <stdlib.h>
 
int cmp(long int a,long int b,long int c)
{
    int r =((a+b)>c?(1):(0));
    return r;
}
 
int main()
{
    int num = 0,i=0;
    long int a,b,c;
    scanf("%d",&num);
    int k[num];
    for(i=0;i<num;i++){
        scanf("%ld%ld%ld",&a,&b,&c);
        k[i] = cmp(a,b,c);
    }
    for(i=0;i<num;i++){
        if(k[i]==1)
            printf("Case #%d: true\n",i+1);
        else
            printf("Case #%d: false\n",i+1);
    }
    return 0;
}
发表于 2015-08-26 10:24:07 回复(2)
/**
 * A+B和C (15)
 * 时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小)
 * 题目描述
 * 给定区间[-2的31次方, 2的31次方]内的3个整数A、B和C,请判断A+B是否大于C。
 * 输入描述:
 * 输入第1行给出正整数T(<=10),是测试用例的个数。随后给出T组测试用例,每组占一行,顺序给出A、B和C。整数间以空格分隔。
 * 输出描述:
 * 对每组测试用例,在一行中输出“Case #X: true”如果A+B>C,否则输出“Case #X: false”,其中X是测试用例的编号(从1开始)。
 * 输入例子:
 * 4
 * 1 2 3
 * 2 3 4
 * 2147483647 0 2147483646
 * 0 -2147483648 -2147483647
 * 输出例子:
 * Case #1: false
 * Case #2: true
 * Case #3: true
 * Case #4: false
 *
 * @author shijiacheng
 */
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        for (int i = 0; i < T; i++) {
            BigInteger A = sc.nextBigInteger();
            BigInteger B = sc.nextBigInteger();
            BigInteger C = sc.nextBigInteger();
            BigInteger sum = A.add(B);
            if (sum.compareTo(C) > 0) {
                System.out.println("Case #" + (i + 1) + ": true");
            } else {
                System.out.println("Case #" + (i + 1) + ": false");
            }
        }
    }
}
发表于 2018-01-23 22:36:25 回复(2)
import java.io.*;
public class PAT1001 {
public static void main(String[] args) throws IOException{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(in.readLine());
long[] as = new long[n], bs = new long[n], cs = new long[n];
for(int i=0;i<n;i++){
String[] line = in.readLine().split(" ");
as[i] = Long.parseLong(line[0]);
bs[i] = Long.parseLong(line[1]);
cs[i] = Long.parseLong(line[2]);
}
for(int i=0;i<n;i++){
System.out.println("Case #" + (i+1) + ": " + //isGreaterThan(as[i], bs[i], cs[i]));
(as[i]+bs[i]>cs[i]));
}
}
public static boolean isGreaterThan(int a, int b, int c){
if(a>0&&b>0&&a+b<0) return true;
if(a<0&&b<0&&a+b>=0) return false;
return a+b>c;
}
}
 就跟我说
1
2147483648 2147483648 2147483648
过不去 然而我这能过去啊... 什么鬼

发表于 2017-08-16 13:52:53 回复(2)
import java.util.Scanner;
public class Main{	
	public static void main(String args[]){
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		boolean[] result = new boolean[n];
		for(int i = 0; i < n; i++)
		{
			long a = sc.nextLong();
			long b = sc.nextLong();
			long c = sc.nextLong();
			if((c-a)<b) result[i] = true;
			else result[i] = false;
		}
		for(int i = 0; i < n; i++)
			System.out.println("Case #" + (i+1) + ": "+result[i]);
	}
}
发表于 2017-07-28 13:02:02 回复(1)

编辑于 2017-04-24 13:40:11 回复(1)
import java.util.ArrayList;
import java.util.Scanner;

public class Test1 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		ArrayList<String> list = new ArrayList<String>();
		long a,b,c;
		int i=1;
		int count = scan.nextInt();
		while(count > 0){
			a = scan.nextLong();
			b = scan.nextLong();
			c = scan.nextLong();
			if(a+b>c)list.add("true");
			else list.add("false");
			count --;
		}
		/*
		 * case #1: false
		 */
		for(String str:list){
			System.out.println("Case #"+i+": "+str);
			i++;
		}
		
			
	}

}
提交了多次,错误的原因竟然是因为加了package。
发表于 2015-08-13 21:41:49 回复(3)
#include<iostream>
using namespace std;
int main(void)
{
    int T;
    cin >> T;
    long int **pt = new long int*[T];
    for (int i = 0; i<T; i++)
    {
        pt[i] = new long int[3];
        cin >> pt[i][0] >> pt[i][1] >> pt[i][2];
    }
    for (int i = 0; i < T; i++)
        if (pt[i][0] + pt[i][1] > pt[i][2])
            cout << "Case #" << i+1 << ": true" << endl;
        else
            cout << "Case #" << i+1 << ": false" << endl;
    return 0;
}
编辑于 2018-06-16 19:24:39 回复(0)
#include <stdio.h>
#include <stdlib.h>

int comp(long int a,long int b,long int c)
{
	int r =(a+b)>c?(1):(0);
	return r;
}

int main()
{
	int num = 0,i=0;
	long int a,b,c;
	scanf("%d",&num);
	int result[num];
	for(i=0;i<num;i++){
		scanf("%ld%ld%ld",&a,&b,&c);
		result[i] = comp(a,b,c);
	}
	for(i=0;i<num;i++){
		if(result[i]==1)
			printf("Case #%d: true\n",i+1);
		else
			printf("Case #%d: false\n",i+1);
	}
	return 0;
}
	
  • 按照题目要求,先接收输入的测试组数,再输入每一组数据时,进行调用比较函数判断并将结果存于一个暂时的数组中,做好对应关系。等全部输入完后,再将原先存好的数组数据判断,输出结果,如此,并可实现题目的一串输入,一串结果输出。
发表于 2015-08-18 16:03:37 回复(3)
import java.util.*;
//简单题
public class Main {
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        int t = in.nextInt();
        int i =0;
        while(t-->0){
            i++;
            long a = in.nextLong();
            long b = in.nextLong();
            long c = in.nextLong();
            System.out.println("Case #"+i+": "+(a+b>c));
        }
    }
} 

发表于 2018-05-04 08:41:32 回复(0)
import java.util.Scanner;

public class Main {

public static void main(String[] args) {
	    int p = 0;
		//System.out.println("Type T that 0 < T <= 10 :");
		Scanner _scanner = new Scanner(System.in) ;
		int T = _scanner.nextInt() ;
		
		while (T <= 0 || T > 10) {
			System.out.println("retype T that 0 < T <= 10 :");
			Scanner _scanner1 = new Scanner(System.in) ;
			T = _scanner1.nextInt() ;
			}
		
		//System.out.println("输入" + T + "组测试用例,每组A B C三个数,并用空格隔开:");
		
		long[][] _2darray = new long[T][3] ;
		
		for (int i = 0; i < T; i++) {
			for (int j = 0; j < 3; j++) {
				_2darray[i][j] = _scanner.nextLong() ;
			}
		}
		
		  for (int i = 0; i < T; i++) {
			  
			if (_2darray[i][0] + _2darray[i][1] > _2darray[i][2]) {
				System.out.println("Case #" + ++p + ": " + "true");
			} else {
				System.out.println("Case #" + ++p + ": " + "false");
			}
		}
		
	}

}

发表于 2017-08-02 00:15:22 回复(3)
s = input()
for i in range(1,s+1):
    num = raw_input().split(' ')
    if int(num[0])+int(num[1])>int(num[2]):
        print 'Case #'+str(i)+': true'
    else:
        print 'Case #'+str(i)+': false'
python代码系列 注意python(2.7)获取的只能是单独的一行int或者一行字符串
发表于 2017-07-29 10:48:13 回复(0)
C语言,因为考虑溢出用了long,如果还不够可以用long long,答案换行必须要有,和题干一样才行,剩下的很简单了,判断a+b>c就可以;
#include<stdio.h>
int main()
{
    long n,a,b,c;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        scanf("%ld %ld %ld",&a,&b,&c);
        if(a+b>c)
        {
            printf("Case #%d: true\n",i);
        }
        else
        {
            printf("Case #%d: false\n",i);
        }
    }
    return 0;
}

发表于 2021-12-28 13:07:09 回复(0)
#include<stdio.h>
int main (){
    int a=0;
    scanf("%d\n",&a);    int f=0;
    while(a!=0){
        a--;
    f++;
        long double  b,d,e;
        scanf("%Lf %Lf %Lf",&b,&d,&e);
        if ( (b+d) > e) printf("Case #%d: true\n",f);
        else  printf("Case #%d: false\n",f);
        
    }

发表于 2021-03-02 17:25:43 回复(0)
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>

using namespace std;

int T;
long long A,B,C;
bool flag=false;
int i=1;
int main(){
    scanf("%d",&T);
//    while(T--){
//        cin>>A>>B>>C; 
//        if(A+B>C)
//            flag=true;
//        else
//            flag=false;
//        printf("Case #%d: ",i++);
//        cout<<boolalpha<<flag<<endl;     //用 boolalpha可以输出flag,true,而不是0,1 
//    }
    while(T--){
        cin>>A>>B>>C;
        printf("Case #%d: %s\n",i++,(A+B)>C?"true":"false");
    
    return 0;
}

发表于 2020-02-06 16:36:48 回复(0)
用int类型就行
#include <bits/stdc++.h>

using namespace std;
int main()
{
    int i,j,n,a,b,c;
    cin>>n;
    for(i=1;i<=n;i++){
        cin>>a>>b>>c;
        if((a*0.5+b*0.5)>(c*0.5))
            cout<<"Case #"<<i<<": true"<<endl;
        else
            cout<<"Case #"<<i<<": false"<<endl;
    }

    return 0;
}


发表于 2020-01-15 11:22:13 回复(0)

分析

  1. 因为在给定区间 判断,该区间右端点在int范围已经溢出,且也在int范围是溢出的,说明加数,和均会溢出。所以不能使用int类型存储输入数据,需要用long long类型来保证计算不会溢出。
/*
 * app=PAT-Basic lang=c++
 * https://pintia.cn/problem-sets/994805260223102976/problems/994805312417021952
 */
#include <cstdio>
int main()
{
    int T;
    long long A, B, C,sum;
    scanf("%d",&T);
    for (int i = 0; i < T;i++){
        scanf("%lld%lld%lld",&A,&B,&C);
        sum = A + B;
        if (sum > C){
            printf("Case #%d: true\n",i + 1);
        }
        else{
            printf("Case #%d: false\n", i + 1);
        }
    }
    return 0;
}
编辑于 2019-12-02 13:07:39 回复(0)
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        byte T = in.nextByte();
        for (int i = 1; i <= T; i++)
            System.out.println("Case #" + i + ": " + (in.nextLong() + in.nextLong() > in.nextLong()));
    }
}

编辑于 2019-08-31 22:06:24 回复(0)
我就是想来点奇葩的
int 改 long long
#include <bits/stdc++.h>
#define il inline int
#define re register int

//看!
#define int long long

int n;
int A,B,C;

signed main(){
    scanf("%lld",&n);
    for(int i=0;i<n;i++){
        scanf("%lld %lld %lld",&A,&B,&C);
        printf("Case #%d: %s\n",i+1,(A+B)>C?"true":"false");
    }
    return 0;
}


发表于 2019-08-07 19:48:15 回复(0)
import   java.util.Scanner;
public class   Main{
public  static void main(String[]  args){
Scanner  sc =new  Scanner(System.in);
int  i = sc.nextInt();
boolean[] arr =new  boolean[i];
for(intn =0;n <i;n++){
long a  = sc.nextLong();
long b  = sc.nextLong();
long c  = sc.nextLong();
if((a+b)<=c){
arr[n] =false;
}
else
arr[n] =true;
}
for(intnum=0;num<arr.length;num++){
System.out.println("Case #"+(num+1)+": "+arr[num]);
}
}
编辑于 2019-08-02 14:03:43 回复(0)

问题信息

难度:
386条回答 88720浏览

热门推荐

通过挑战的用户