牛客網小白月賽9 論如何出一道水題(OJ題目ACM)
阿新 • • 發佈:2018-12-07
連結:https://ac.nowcoder.com/acm/contest/275/H
來源:牛客網
時間限制:C/C++ 1秒,其他語言2秒
空間限制:C/C++ 262144K,其他語言524288K
64bit IO Format: %lld
題目描述
給定 n,求一對整數 (i,j),在滿足 1 ≤ i ≤ j ≤ n 且 的前提下,要求最大化 i+j 的值
輸入描述:
第一行一個整數 n
輸出描述:
一行一個整數表示答案
示例1
輸入
2
輸出
3
備註:
資料範圍:1 ≤ n ≤ 1018
解法:相鄰2個數一定互質(都大於0)
#include<stdio.h> int main() { long long n; scanf("%lld",&n); if(n>1) { n=n+n-1; printf("%lld\n",n); } else printf("2\n"); }
WA兩次,一次是沒有考慮到1這種情況,第二次是scanf("%d",&n);必須寫成%lld,不然輸入的數大於等於4294967296(2的32次方)就會報錯,按道理應該是31次方啊,不懂為什麼符號位也給它了。
反正就是不能忘記使用64位不僅printf要%lld,scanf也要%lld