日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

不用long的危害(记洛谷P5534题的WA经历,Java语言描述)

發(fā)布時(shí)間:2025/3/15 java 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 不用long的危害(记洛谷P5534题的WA经历,Java语言描述) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

閑來無事想起了洛谷,打卡簽到刷他幾個(gè)題再說,殊不知這是杯具的開始~~

P5534是一個(gè)弱智題,入門級別,只需要知道下面公式即可,而且還不止一個(gè)公式。
下面是我用的公式(高中的感覺真讓人懷念啊~~):

看題:
題目描述

小 X 給了你一個(gè)等差數(shù)列的前兩項(xiàng)以及項(xiàng)數(shù),請你求出這個(gè)等差數(shù)列各項(xiàng)之和。

等差數(shù)列:對于一個(gè) n項(xiàng)數(shù)列 a,如果滿足對于任意 i∈[1,n),有 ai+1?ai=d,其中 d 為定值,則稱這個(gè)數(shù)列為一個(gè)等差數(shù)列。
輸入格式

一行 3個(gè)整數(shù) a1,a2,n,表示等差數(shù)列的第 1,2 項(xiàng)以及項(xiàng)數(shù)。

數(shù)據(jù)范圍:

∣a1?∣,∣a2?∣≤10^6。
3≤n≤10^6。

輸出格式

一行一個(gè)整數(shù),表示答案。
輸入輸出樣例
輸入 #1

1 2 3

輸出 #1

6

輸入 #2

-5 -10 5

輸出 #2

-75

說明/提示

【樣例 1 說明】

這個(gè)等差數(shù)列為 1 2 3,其各項(xiàng)之和為 6。

我是用Java寫的:

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int a1 = scanner.nextInt();int a2 = scanner.nextInt();int num = scanner.nextInt();int d = a2 - a1;System.out.println(num*a1 + num*(num-1)*d/2);scanner.close();}}

然后一般小白看來肯定OK是吧,提交以后我傻了:

這都是啥?
冥思苦想很久,大膽地做了一個(gè)很極限的測試:

-99999 99999 99999

結(jié)果是悲壯的:

-2137671075

這是啥?
我恍然大悟——溢出了。。。
那就換long唄?畢竟測試數(shù)據(jù)不超過100000。。。
一篇感人至深的code誕生了:

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);long a1 = scanner.nextLong();long a2 = scanner.nextLong();long num = scanner.nextLong();long d = a2 - a1;System.out.println(num*a1 + num*(num-1)*d/2);scanner.close();}}

運(yùn)行上面的測試用例:

999950000699997

很棒,然后:

終于AC了,痛哭流涕~~
以后要多做OJ,避免自己成為能寫系統(tǒng)卻不能做OJ的菜雞~~~

總結(jié)

以上是生活随笔為你收集整理的不用long的危害(记洛谷P5534题的WA经历,Java语言描述)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。