PAT乙级Java实现_1011. A+B和C_11

本文介绍PAT B级题目1011的解题思路与代码实现,主要涉及整数运算及溢出处理。通过实例演示如何使用Java进行有效的大整数运算,并提供完整的代码示例。

1011. A+B和C (15)

时间限制
150 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
HOU, Qiming

给定区间[-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开始)。

输入样例:
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


/*唯一一个需要注意的地方就是得用long类型保存输入的数据,
 * 因为两个2^31相加用int类型保存会溢出
 * */
import java.util.Scanner;
public class PAT_B_1011
{
	public static void main(String[] agrs)
	{
		Scanner in = new Scanner(System.in);
		long num = in.nextLong();
		for(int i = 0; i < num; i++)
		{
			long a = in.nextLong();//保存输入数据
			long b = in.nextLong();
			long c = in.nextLong();
			boolean flag = (a + b > c);//判断(a+b)是否大于c
			System.out.println("Case #" + (i+1) + ": " + flag);//格式化输出
		}
	}
}

//------实时计算 //根据相位, 计算参数值, //根据病人端的压力,计算病人端的泄露量,压力 * 系数+ 压力平方值 * 系数 //flowLeak = s_RespCalculations.LeakConstant * fPatientPressure + s_RespCalculations.LeakConstantSqrt * sqrtPatientPressure void BreathPhaseHandle(void) { FP32 fFlow = Get_FilteredSmpValue(SMP_SNS_MixFlow); FP32 fFilteredFlow = FilterTwoPole_Filter(&s_FilterTrigFlow, fFlow); FP32 fPatientPressure = Get_FilteredSmpValue(SMP_SNS_Prs_Pat); FP32 sqrtPatientPressure = (fPatientPressure > 0 ? sqrtf(fPatientPressure) : 0); FP32 fFilteredPatientPressure = FilterTwoPole_Filter(&s_FilterPatientPressure, fPatientPressure); //add by abc 2024.3.20 /* 2025.02.21 Changed by Chaoqi,using flow raw data,wavefrom will noise. * Get_FilteredSmpValue(SMP_SNS_MixFlow) -> fFilteredFlow(FilterTwoPole_Filter(&s_FilterTrigFlow, fFlow)) */ if (g_sVentRun.uVentPhase != 0)//24.6.7 刚进通气面罩泄漏可能为0,前1.5s先不计算泄漏 ty { s_RespParameters.flowLeak_RT = ven_leak_cal(g_sSysData.fMaskLeakRef, fFilteredFlow, 0); } else { s_RespParameters.flowLeak_RT = 0; if (g_sSysData.uMaskMatchFlag == 1) { s_RespParameters.flowLeak_RT = ven_leak_cal(g_sSysData.fMaskLeakRef, fFilteredFlow, 0); } } g_sVentRun.fExceExpLeak = s_RespParameters.flowLeak_RT - g_sSysData.fMaskLeakRef; // Pressure at the patient port s_RespParameters.p_Patient = fPatientPressure; s_RespParameters.p_PatientFiltered = fFilteredPatientPressure; // Calculate leakage compensated flow s_RespParameters.flow_RT = fFlow - s_RespParameters.flowLeak_RT; s_RespParameters.flow_RTFiltered = FilterTwoPole_Filter(&s_FilterPatientFlowLP, s_RespParameters.flow_RT);//chg by abc s_RespParameters.flow_Filtered = fFilteredFlow; /* 2025.08.18,Added by Chaoqi */ if (g_sSysData.uMaskMatchFlag == 1) { return; } /* 2024.04.12 added by Chaoqi * Patient flow delay 300ms,use for "Auto" trigger. */ FP32 fFilteredRTFlowAfter300ms = FilterDelay_Filter(&s_FilteredRTFlowAfter300ms, s_RespParameters.flow_RTFiltered); // CalculateBreathAndLeakage(); if (g_sVentRun.uTherapyTime >= 300) { if (g_sVentRun.uVentPhase == 1) { AutoTriggerShapeFlow = fFilteredRTFlowAfter300ms - OFFSET_FLOW; } else if (g_sVentRun.uVentPhase == 2) { AutoTriggerShapeFlow = fFilteredRTFlowAfter300ms + OFFSET_FLOW; } else { AutoTriggerShapeFlow = fFilteredRTFlowAfter300ms; } } //add by abc, for 25Hz if (g_sVentRun.uTherapyTime % (1000 / VEN_EVENT_SAMPLE) == 0) { ven_event_pro(s_RespParameters.flow_RTFiltered, ven_get_FOT_status(), Vent_GetRampState(), 0); } static u8 VTI_Sample_Flag = 1; static u8 VTE_Sample_Flag = 1; //s_EBreathPhs 为当前相位 if (s_EBreathPhs == BPHS_INSP) { s_RespCalculations.InspTimeCnt += 1; s_RespCalculations.InspRawFlowSum += fFlow; //25.02.08 add by ty: VT Problem /* 2025.02.23 Changed by Chaoqi */ if (s_RespCalculations.InspTimeCnt == 1) { VTI_Sample_Flag = 1; } else { if (s_RespParameters.flow_RT <= 0.5f && s_RespCalculations.InspTimeCnt > 300) { VTI_Sample_Flag = 0; } } if (VTI_Sample_Flag == 1) { s_RespCalculations.InspFlowSum += s_RespParameters.flow_RT; } // s_RespCalculations.InspFlowSum += s_RespParameters.flow_RT; s_RespCalculations.InspPressSum += fPatientPressure; s_RespCalculations.InspSqrtPressSum += sqrtPatientPressure; s_RespCalculations.InspPeakFlow = MAX(s_RespCalculations.InspPeakFlow, s_RespParameters.flow_RTFiltered);//chg by abc 更改为用滤波后的人体流量,未滤波前的流量可能由于漏气估算残留而导致计算不准确 s_RespCalculations.InspRawPeakFlow = MAX(s_RespCalculations.InspRawPeakFlow, fFlow); s_RespParameters.flow_InspPeak_RT = s_RespCalculations.InspPeakFlow; s_RespParameters.VT_RT = s_RespCalculations.InspFlowSum * 1000.0f / 60.0f * RESP_PARAM_SAMPLE_TIME; } else if (s_EBreathPhs == BPHS_EXP || s_EBreathPhs == BPHS_START) { s_RespCalculations.ExpTimeCnt += 1; s_RespCalculations.ExpRawFlowSum += fFlow; //25.02.08 add by ty: VT Problem /* 2025.02.23 Changed by Chaoqi */ if (s_RespCalculations.ExpTimeCnt == 1) { VTE_Sample_Flag = 1; } else { if (s_RespParameters.flow_RT >= -0.5f && s_RespCalculations.ExpTimeCnt > 500) { VTE_Sample_Flag = 0; } } if (VTE_Sample_Flag == 1) { s_RespCalculations.ExpFlowSum += s_RespParameters.flow_RT; } // s_RespCalculations.ExpFlowSum += s_RespParameters.flow_RT; s_RespCalculations.ExpPressSum += fPatientPressure; s_RespCalculations.ExpSqrtPressSum += sqrtPatientPressure; //chg by abc 更改为用滤波后的人体流量,未滤波前的流量可能由于漏气估算残留而导致计算不准确 s_RespCalculations.ExpPeakFlow = MIN(s_RespCalculations.ExpPeakFlow, s_RespParameters.flow_RTFiltered); s_RespCalculations.ExpRawPeakFlow = MIN(s_RespCalculations.ExpRawPeakFlow, fFlow); s_RespParameters.VT_RT = (s_RespCalculations.InspFlowSum + s_RespCalculations.ExpFlowSum) * 1000.0f / 60.0f * RESP_PARAM_SAMPLE_TIME; } }
最新发布
11-20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值