C 牛客網普及組第二次測試A

2022-08-19 11:03:08 字數 1663 閱讀 9172

---恢復內容開始---

時間限制:c/c++ 1秒,其他語言2秒

空間限制:c/c++ 32768k,其他語言65536k

64bit io format: %lld

牛牛剛學習了輸入輸出,他遇到了一道這樣的題目。

輸入2個整數a和b

保證輸入的a和b在long long範圍之內,即滿足

-9223372036854775808 <= a, b <= 9223372036854775807

計算a+b的值,即這兩個數字的和。

如果a+b在long long範圍之內,即滿足

-9223372036854775808 <= a + b <= 9223372036854775807

那麼輸出一行乙個整數表示a+b的結果。

如果a+b不在long long範圍之內,即越界了,那麼輸出"hello, %lld\n",包含引號。

具體可以參見樣例。

輸入只有一行,包含用空格分開的兩個整數,表示a和b。
如果a+b在long long範圍之內,輸出一行乙個整數,表示a+b的結果;否則輸出"hello, %lld\n",包含引號。
示例1

複製

-9223372036854775808 9223372036854775807
複製

-1
示例2複製

9223372036854775807 1
複製

"hello, %lld\n"

正確計算a+b可以得到50分

正確輸出"hello, %lld\n"也可以得到50分

這道題看似是一道高精度計算,但是我們並不需要利用高精度(主要是自己考試的時候寫不出來。。。。。)

所以我們要作的巧妙一些。

首先根據題目要求定義乙個long long 的型別,隨後,我們就可以直接進行判斷了。

因為計算機在你的數越界了以後,就會輸出乙個負整數,所以我們只需要判斷a+b是不是最後相加成了乙個負整數,所以我們的問題也就迎刃而解了。

同樣的,對於兩個負數相加的時候,只需要判斷計算的結果是不是乙個正數。

就是這樣對於判斷的過程就解決了。

但是。。

在我們要輸出"hello, %lld\n"的時候,我們的問題又來了,因為「」 是不容易輸出的。

而且\也會代表著換行,會出現編譯錯誤。

解決方法也不難,我們只需要運用一下char()就可以了。

char(34)=" char(92)=\

示範如下:

#include//

萬能標頭檔案

本題**:

#includeusing

namespace

std;

long

long a,b,n,m,sum=9223372036854775807,ans=-9223372036854775808

;int

main()

else cout

}

C 牛客網普及組第二次測試B

時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k 64bit io format lld 牛牛最近學習了質數的概念。質數指在大於1的自然數中,除了1和它本身以外不再有其他因數。輸入乙個n,輸出小於等於n最大的質數。輸入乙個整數n輸出小於等於n的最大的質數示例...

第二次c 試驗測試

通過上網查閱之後了解了一些預處理器的知識。line 指令可能由生成過程中的自動中間步驟使用。例如,如果行從原始的源 檔案中移除,但是您仍希望編譯器基於檔案中的原始行號生成輸出,則可以移除行,然後用 line 模擬原始行號。line hidden 指令對偵錯程式隱藏若干連續的行,這樣當開發人員在逐句通...

C 第二次作業

1 例題 功能 布林型別使用舉例 include includeusing namespace std int main bool flag true cout 功能 賦值表示式語句的使用 includeusing namespace std int main int a,b,c,d a 4 b a...