ACM模式!一起背模板!
很多錄友苦于不熟悉 ACM 輸入輸入結(jié)構(gòu),在筆試和面試的時(shí)候,處理數(shù)據(jù)輸入輸出就花費(fèi)了大量的時(shí)間,以至于算法題沒(méi)寫(xiě)完,甚至是 根本就寫(xiě)不對(duì)輸入輸出的方式。
下面,我針對(duì)常見(jiàn)的25種 ACM輸入與輸出方式,給大家總結(jié)了模板寫(xiě)法PDF,包括了C++、Java、Python、Go、JS等主流編程語(yǔ)言。
大家可以拿去直接“背誦”。
每種輸入輸出,都配套的對(duì)應(yīng)的卡碼網(wǎng)(kamacoder.com)練習(xí)題。
例如繼續(xù)輸入A+B,遇到 A、B 為0 的時(shí)候終止,對(duì)應(yīng)的寫(xiě)法:
練習(xí)題:A+B問(wèn)題III(https://kamacoder.com/problem.php?id=1002)
c++:
using?namespace?std;
int?main()?{
????int?a,?b;
????while?(cin?>>?a?>>?b)?{
????????if?(a?==?0?&&?b?==?0)?break;
????????cout?<<?a?+?b?<<?endl;
????}
}
Java:
import?java.util.Scanner;
public?class?Main?{
????public?static?void?main(String[]?args)?{
????????Scanner?scanner?=?new?Scanner(System.in);
????????while?(scanner.hasNext())?{
????????????int?a?=?scanner.nextInt();
????????????int?b?=?scanner.nextInt();
????????????if?(a?==?0?&&?b?==?0)?{
????????????????break;
????????????}
????????????System.out.println(a?+?b);
????????}
????}
}
Python:
import?sys
while?True:
????s?=?input().split()?#?一行一行讀取
????a,?b?=?int(s[0]),?int(s[1])
????if?not?a?and?not?b:?#?遇到?0,?0?則中斷
????????break
????print(a?+?b)
Go:
package?main
import?"fmt"
func?main()?{
?var?a,?b?int
?for?{
??_,?err?:=?fmt.Scan(&a,?&b)
??if?err?!=?nil?{
???break
??}
??if?a?==?0?&&?b?==?0?{
???break
??}
??fmt.Println(a?+?b)
?}
}
JavaScript:
//?引入readline模塊來(lái)讀取標(biāo)準(zhǔn)輸入
const?readline?=?require('readline');
//?創(chuàng)建readline接口
const?rl?=?readline.createInterface({
????input:?process.stdin,
????output:?process.stdout
});
function?preoceeInput()?{
????rl.on('line',?(input)?=>?{
????????const?[a,?b]?=?input.split('?').map(Number);
????????//?#?遇到?0,?0?則中斷
????????if?(a?===?0?&&?b?===?0)?{
????????????return;
????????}?else?{
????????????console.log(a?+?b);
????????}
????});
}
preoceeInput()
PDF 就是這樣的,概括了25種ACM模式常見(jiàn)輸入輸出寫(xiě)法:

領(lǐng)取方式
掃如下二維碼,通過(guò)之后就會(huì)發(fā)你這份PDF。

如果已經(jīng)添加,直接回復(fù):ACM,就可以了。