Windows 環境請使用 CMD 作為終端機執行程式碼與編譯。
22 1
23 1
24 1
23
24
25
Windows 上 Python會有些功能無法與其他OS產生相同結果
請勿使用字串檔案路徑,請使用例如os
等內建函式庫
main.py
import sys
for line in sys.stdin.read().splitlines():
# splitlines 會去除不同OS的換行符號
nums = [int(num) for num in line.split()]
# nums = map(int, line.split())
print(sum(nums))
$ python main.py < in.txt
Main.java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextLine()) {
String input = scanner.nextLine().strip();
String[] nums = input.split(" ");
Integer result = 0;
for(String s: nums) {
result += Integer.parseInt(s);
}
System.out.println(result);
}
scanner.close();
}
}
$ javac Main.java
$ java Main < in.txt
main.c
#include<stdio.h>
int main(){
int a, b;
while(!feof(stdin) && scanf("%d %d", &a, &b)){
printf("%d\n", a+b);
}
}
$ gcc main.c -o main
$ ./main < in.txt
main.cpp
#include<iostream>
using namespace std;
int main(){
int a, b;
while(cin >> a >> b){
cout << a + b << endl;
}
}
$ g++ main.cpp -o main
$ ./main < in.txt
main.php
<?php
$handle = fopen('php://stdin', 'r');
while($line = fgets($handle)){
[$a, $b] = explode(' ', $line);
echo intval($a) + intval($b);
echo PHP_EOL;
}
<?php
$data = explode(PHP_EOL, trim(stream_get_contents(STDIN)));
foreach ($data as $item) {
[$a, $b] = explode(' ', $item);
echo (intval($a) + intval($b)) . PHP_EOL;
}
$ php main.php < in.txt
use std::io;
use std::io::BufRead;
fn main() {
for line in io::stdin().lock().lines() {
let input = line.unwrap();
let nums: Vec<&str> = input.trim().split(' ').collect();
let result: i32 = nums
.into_iter()
.map(|x| x.parse::<i32>().unwrap())
.sum();
println!("{}", result);
}
}
$ cargo build
$ cargo run < in.txt
package main
import (
"bufio"
"fmt"
"log"
"os"
"strconv"
"strings"
)
func main() {
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
result := 0
numbers := strings.Fields(scanner.Text())
for _, num := range numbers {
n, _ := strconv.Atoi(num)
result += n
}
fmt.Println(result)
}
if scanner.Err() != nil {
log.Fatalln("Scanner Fail.")
}
}
main.js
process.stdin.resume();
process.stdin.setEncoding('utf8');
process.stdin.on('data', processLine => {
processLine.toString('utf-8').split('\n')
.map(x => x.trim())
.filter(x => !!x)
.map(data => {
console.log(data.split(' ').reduce((x, y) => +x + +y))
})
})
$ node main.js < in.txt
$ npm install -g typescript
tsc
main.ts
declare const process: any;
process.stdin.resume();
process.stdin.setEncoding('utf8');
process.stdin.on('data', processLine => {
processLine.toString('utf-8').split('\n')
.map(x => x.trim())
.filter(x => !!x)
.map(data => {
console.log(data.split(' ').map(i => +i).reduce((x, y) => x + y))
});
});
$ tsc main.ts --outFile maints.js
$ node maints.js < in.txt
fun main() {
generateSequence(::readLine)
.map { it.split(" ").map(String::toInt).sum() }
.forEach(::println)
}
import Foundation
while let line: String = readLine() {
let result: Int = line.trimmingCharacters(in: .whitespacesAndNewlines)
.split(separator: " ")
.map{Int($0)!}
.reduce(0, +)
print(result)
}
$ swift main.swift < in.txt
Mono VB 函式庫需要額外Import
即VB寫法會與visual studio有些差異
例如:ArrayList
必須用 Imports System.Collections
main.vb
Module Module1
Sub Main()
While True
Dim Input As String = Console.ReadLine()
If Input Is Nothing Then Exit While
Dim Data() As Integer = Input.Split(" ").Select(Function(x) CInt(x)).ToArray
Dim A As Integer = Data(0)
Dim B As Integer = Data(1)
Dim Output As Integer = A + B
Console.WriteLine(Output)
End While
End Sub
End Module
$ vbc main.vb
編譯程式碼
$ main < in.txt
for windows
$ mono main.exe < in.txt
for mono
$ vbc main.vb -out:main.exe
$ mono main.exe < in.txt
main.cs
using System;
using System.Linq;
public class Test
{
public static void Main()
{
string line = Console.ReadLine();
while(line != null){
int[] nums = line.Split(' ').Select(x => Int32.Parse(x)).ToArray();
Console.WriteLine(nums[0] + nums[1]);
line = Console.ReadLine();
}
}
}
$ csc main.cs
$ ./main < in.txt
$ mcs main.cs -out:main.exe
$ mono main.exe < in.txt
Windows 上 Ruby會有些功能無法正常運作
main.rb
ARGF.each do |input|
puts input.split.map(&:to_i).sum
end
$ ruby main.rb < in.txt