1065 A+B and C (64bit)

題目

給定三個數,如果前兩個數的和大於第三個個數就輸出true,否則輸出false

思路

一開始我以爲是考大整數,後來發現是考溢出,因爲有一個類型是能容下64位整數的,就是long long,取值範圍和溢出規律看這裏,思路是這樣的,兩個正數相加溢出說明一定大於第三個數,如果兩個負數相加溢出說明一定小於第三個數,如果沒有溢出,判斷就好了

代碼

#include <iostream>

using namespace std;


int main() {
    ios::sync_with_stdio(false);
    int n;
    cin>>n;
    for(int i=1; i<=n; i++) {
        long long a,b,c;
        long long sum;
        cin>>a>>b>>c;
        sum = a+b;
        if(a>0&&b>0&&sum<0) {
            cout<<"Case #"<<i<<": true"<<"\n";
        } else if(a<0&&b<0&&sum>=0) {
            cout<<"Case #"<<i<<": false"<<"\n";
        } else if(sum>c) {
            cout<<"Case #"<<i<<": true"<<"\n";
        } else {
            cout<<"Case #"<<i<<": false"<<"\n";
        }
    }

    return 0;
}

??正文結束??
發佈了153 篇原創文章 · 獲贊 16 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章