1. 程式人生 > >牛客網小白月賽9 論如何出一道水題(OJ題目ACM)

牛客網小白月賽9 論如何出一道水題(OJ題目ACM)

連結: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