Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

acmcodercom/ojhtml

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

总体说明

出题官请移步这里:出题指引

所有的测试用例输入,最后一行都有一个回车"\n"!!!

Linux系统,文件名大小写敏感,在c/c++引用头文件时尤其需要注意;

读取输入时,不要自行加提示消息,例如:raw_input('Please input two numbers: ')

输出答案时,不要自行添加提示消息,例如:printf("My answer is:\n")

答案输出完毕时,不要让控制台等待,例如:system("pause")

您的程序只能从标准输入(stdin,即“键盘”)读入,并输出到标准输出(stdout,即“屏幕”);

不允许操作文件或者访问网络,否则将导致不正确的结果;

请不要引用不必要的头文件或命名空间。

输出超限解释

在我们检测您的程序输出时,发现输出的字符个数比正确答案多了,所以不用比对,已经是错误的;

这个时候就会给您返回输出超限,其实您可以认为就是答案错误。

输入输出

OJ运行原理:

for usercase in `ls .`
do
  cat $usercase | 你的脚本或编译后的程序 > test.out
done

也就是说,后台每一个测试用例都会重启您的应用。

注意事项

您的程序需要从stdin读入数据,并输出到stdout;

数据的输入输出格式请遵循题目的描述。

可能遇到的坑(持续补充中ing)

有些题目是客户自己出的,可能描述不会很人性化,我们监控到后台提问时会及时发布公告进行说明,请留意公告,并看清楚测试样例(注意是真实的样例输入,而不是样例描述,有的时候描述可能会有瑕疵,但是真实的样例输入是经过代码验证的);

有些输入说明告诉你是输入一个整数n,一般的输入样例肯定是真的给你一个整数,但是,有些客户出题会是n=3;带上“n=”这2个字符。

有些输入说明告诉你是输入一个数组arr,一般输入的样例是n个空格分隔的数字,但是,有些客户出题会是[1,2,3,4,5],您读到的输入有中括号,以及逗号,而且逗号前后可能还有空格。

关于为什么不提供类似于leetcode的免输入输出模式,这个需要后台录题时录入模版,我们后台是支持免输入输出模式的,但是很少客户使用;我们理解可能是功能不完善,如果有愿意加入我们的,请发送简历至"postmaster@acmcoder.com"。

陆续补坑......

“奇怪”的输入输出

说明

目前,赛码网有大一半的题目都是客户自己的出题官出的,也就是说可能是你未来的同事出的;

对于这些题目的输入输出,可能会有些直接,需要考生多编写点输入输出代码;

我们尽量在改进出题系统的核心函数模式,让更多的出题官愿意使用核心函数模式;

有些考生可能要吐槽,客户自己出的题目,赛码网为什么不改进下题目的输入输出?

这个问的很好,因为目前赛码网的编程题的出题量是巨大的,根本审核不过来,只要题目能跑通,题目就是合格的。

没有给出矩阵的行列数

有些输入可能是:
输入一个矩阵,每行以空格分隔。
3 2 3
1 6 5
7 8 9

对于这种没有给定矩阵行列数的输入,我们只能按照字符串拆分来进行。

python

#!/usr/bin/env python  
# coding=utf-8
arr = []
while 1:
    s = input()

    if s != "":
        arr.append(list(map(int, s.split())))
    else:
        break
# 使用自测数据按钮时调试用,正式提交时要删掉。
print(arr)

js

let arr = [];
let line;
while ((line = read_line()) != "") {
    arr.push(line.split(' ').map(v=>parseInt(v)));
}
// 使用自测数据按钮时调试用,正式提交时要删掉。
for (let i=0; i<arr.length; i++) {
    for (let j=0; j<arr[i].length; j++) {
        printsth(arr[i][j], ' ');
    }
    print();
}

java

import java.io.*;
import java.util.*;

class Solution {
    public void myFunc(ArrayList<ArrayList<Integer>> arr) {
        // 使用自测数据按钮时调试用,正式提交时要删掉。
        System.out.println(arr);
    }
}
public class Main
{
    public static void main(String args[])
    {
        Scanner cin = new Scanner(System.in);
        ArrayList<ArrayList<Integer>> arr = new ArrayList<ArrayList<Integer>>();
        while(cin.hasNextLine())
        {
            ArrayList<Integer> row = new ArrayList<Integer>();
            String line = cin.nextLine();
            if (line.length() > 0) {
                String[] arrLine = line.split(" ");
                for (int i=0; i<arrLine.length; i++) {
                    row.add(Integer.parseInt(arrLine[i]));
                }
                arr.add(row);
            }
        }
        
        new Solution().myFunc(arr);
    }
}

c

#include <stdio.h>
int main()
{
    int arr[1024][1024];
    int row = 0, col = 0, j = 0;
    char c;
    while(scanf("%d", &arr[row][j]) != EOF) {
        c = getchar();
        if (row == 0) col++;
        if (c == '\n') {
            row++;
            j = 0;
        } else if (c == ' ') {
            j++;
        }
    }
    // 使用自测数据按钮时调试用,正式提交时要删掉。
    printf("rows: %d, cols: %d\n", row, col);
    for (int i=0; i<row; i++) {
        for (int k=0; k<col; k++) {
            printf("%d ", arr[i][k]);
        }
        printf("\n");
    }
}

c++

#include <iostream>
#include <vector>
#include <string>
#include <sstream>
using namespace std;
int main() {
    vector<vector<int>> arr;
    string input;
    while (getline(cin, input)) {
        if (input.size() > 0) {
            stringstream stringin(input);
            int num;
            vector<int> a;
            while (stringin >> num) {
                a.push_back(num);
            }
            arr.push_back(a);
        }
    }
    // 使用自测数据按钮时调试用,正式提交时要删掉。
    cout << "rows: " << arr.size() << ", cols: " << arr[0].size() << endl;
    for (int i=0; i<arr.size(); i++) {
        for (int j=0; j<arr[i].size(); j++) {
            cout << arr[i][j] << " ";
        }
        cout << endl;
    }
}

Js读取超长字符串

由于read_line()只能读取1024个字符,所以如果题目中的用例涉及到长度大于1024字符串的,需要用到gets(n)这个函数。

例如有这样一个题目,读取一个字符串,计算其长度。
备注:字符串的长度范围为1到10000;
代码一般这么写:
let line = gets(10000);
print(line.length);
如果测试用例长度刚好10000,则没有问题。
如果测试用例长度为小于10000,假设是100,则您的答案为101,错误。
因为gets(n)函数在遇到回车,或者第n个字符时,都会结束,但是如果是遇到回车结束的,则回车也会包含在返回值当中,所以,应该trim一下。
let line = gets(10000).trim();
print(line.length);

输入数组中带有中括号和逗号

有些输入可能是,输入一个矩阵:
[[3,2,3],
 [1,6,5],
 [7,8,9]]

对于这种没有给定矩阵行列数的输入,而且还包含中括号和逗号的输入,我们也是只能按照字符串拆分来进行。

这里逗号和右中括号是关键。

python

#!/usr/bin/env python  
# coding=utf-8
arr = []
while 1:
    s = input()

    if s != "":
        arr.append(list(map(int, s.replace("],", "").replace(" ", "").replace("[", "").replace("]", "").split(","))))
    else:
        break
# 使用自测数据按钮时调试用,正式提交时要删掉。
print(arr)

js

let arr = [];
let line;
while ((line = read_line()) != "") {
    arr.push(line.replace(/\]\,/g, "").replace(/ /g, "").replace(/\[/g, "").replace(/\]/g, "").split(",").map(v=>parseInt(v)));
}
// 使用自测数据按钮时调试用,正式提交时要删掉。
for (let i=0; i<arr.length; i++) {
    for (let j=0; j<arr[i].length; j++) {
        printsth(arr[i][j], ' ');
    }
    print();
}

java

import java.io.*;
import java.util.*;

class Solution {
    public void myFunc(ArrayList<ArrayList<Integer>> arr) {
        // 使用自测数据按钮时调试用,正式提交时要删掉。
        System.out.println(arr);
    }
}
public class Main
{
    public static void main(String args[])
    {
        Scanner cin = new Scanner(System.in);
        ArrayList<ArrayList<Integer>> arr = new ArrayList<ArrayList<Integer>>();
        while(cin.hasNextLine())
        {
            ArrayList<Integer> row = new ArrayList<Integer>();
            String line = cin.nextLine().trim();
            if (line.length() > 0) {
                String[] arrLine = line
                    .replace("],", "")
                    .replace(" ", "")
                    .replace("[", "")
                    .replace("]", "")
                    .split(",");

                for (int i=0; i<arrLine.length; i++) {
                    row.add(Integer.parseInt(arrLine[i]));
                }
                arr.add(row);
            }
        }
        
        new Solution().myFunc(arr);
    }
}

c

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    int arr[1024][1024];
    char buf[1024];
    char *tok;
    
    int row = 0, col = 0, j = 0;
    while(NULL != gets(buf)) {
        if (strlen(buf) > 0) {
            tok = strtok(buf, " ,[]");
            while (tok != NULL) {
                arr[row][j++] = atoi(tok);
                if (row == 0) col++;
                tok = strtok(NULL, " ,[]");
            }
            row++, j = 0;
        }
    }
    // 使用自测数据按钮时调试用,正式提交时要删掉。
    printf("rows: %d, cols: %d\n", row, col);
    for (int i=0; i<row; i++) {
        for (int k=0; k<col; k++) {
            printf("%d ", arr[i][k]);
        }
        printf("\n");
    }
}

c++

#include <iostream>
#include <vector>
#include <string>
#include <string.h>
#include <sstream>
using namespace std;
int main() {
    vector<vector<int>> arr;
    string input;
    char *tok;
    while (getline(cin, input)) {
        if (input.size() > 0) {
            vector<int> a;
            tok = strtok((char *)input.c_str(), " ,[]");
            while (tok != NULL) {
                a.push_back(stoi(tok));
                tok = strtok(NULL, " ,[]");
            }
            arr.push_back(a);
        }
    }
    // 使用自测数据按钮时调试用,正式提交时要删掉。
    cout << "rows: " << arr.size() << ", cols: " << arr[0].size() << endl;
    for (int i=0; i<arr.size(); i++) {
        for (int j=0; j<arr[i].size(); j++) {
            cout << arr[i][j] << " ";
        }
        cout << endl;
    }
}

输出数组或矩阵

有些时候,出题人可能是直接用python进行的验题,输出二维数组时,是带有中括号和逗号的。

arr = [[1,2,3],[4,5,6]]
print(arr)

输出是:

[[1, 2, 3], [2, 3, 4]]
输出已经拼好了中括号和逗号,但是,别的语言就没有这么幸运,需要自己拼凑这些。

js

let arr = [[1,2,3],[4,5,6]]
console.log(arr.toString())
// 输出是:1,2,3,4,5,6
// 这样就错了,没有中括号

console.log(JSON.stringify(arr));
// 这样是对的

// 这样也是可以的
printsth('[');
for (let i=0; i<arr.length; i++) {
    printsth('[');
    printsth(arr[i].join(', '));
    printsth(']');
    if (i < arr.length - 1)
        printsth(', ');
}
print(']');

自测模式

您可以使用编程界面的“自测数据”进行样例数据或自定义数据的调试;

样例数据您需要自行从题干拷贝粘贴到自测数据中;(后续产品升级时,会替您录入第一个样例数据到自测数据中)

您可以添加多个自定义数据;

提交及计算成绩

在非“自测数据”状态下,点击调试按钮,就算最后的提交;

我们只取最后一次的提交计算最终成绩。

Java

版本

1.8.0_66

root@oj-tk2sd:/# java -version
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)
root@oj-tk2sd:/# javac -version
javac 1.8.0_66
root@oj-tk2sd:/#

编译命令

javac -encoding UTF8 Main.java

运行命令

cat usercase.in | java Main

类名:public class Main

根据编译命令和运行命令,我们可以得出:

不要自定义包名称,否则会报错,即不要添加package answer之类的语句;

您可以写很多个类,但是必须有一个类名为Main,并且为public属性,并且Main为唯一的public class;

Main类的里面必须包含一个名字为'main'的静态方法(函数),这个方法是程序的入口。

示例代码

//package main
//注意不要添加包名称,否则会报错。

import java.io.*;
import java.util.*;
class Solution {
    public int addab(int a, int b) {
        return a+b;
    }
}
public class Main
{
    public static void main(String args[])
    {
        Scanner cin = new Scanner(System.in);
        int a, b;
        while(cin.hasNextInt())
        {
            a = cin.nextInt();
            b = cin.nextInt();
            Solution s = new Solution();
            int c = s.addab(a, b);
            System.out.println(c);
        }
    }
}

Python3

版本

Python 3.4.3

缩进

缩进可以使用tab、4个空格或2个空格,但是只能任选其中一种,不能多种混用;

输入特殊说明

如果使用sys.stdin.readline,因为默认会带换行符,所以要strip('\n')进行截取;

使用input()则不会。

可以使用numpy

version: 1.15.1

示例代码

#!/usr/bin/env python  
# coding=utf-8  
# Python使用的是3.4.3,缩进可以使用tab、4个空格或2个空格,但是只能任选其中一种,不能多种混用
while 1:
    a=[]  
    s = input()

    if s != "":
        for x in s.split():  
            a.append(int(x))  

        print(sum(a))
    else:
        break

Python2

版本

Python 2.7.6

缩进

缩进可以使用tab、4个空格或2个空格,但是只能任选其中一种,不能多种混用;

输入特殊说明

如果使用sys.stdin.readline,因为默认会带换行符,所以要strip('\n')进行截取;

使用raw_input()则不会。

可以使用numpy

version: 1.15.1

示例代码

#!/usr/bin/env python  
# coding=utf-8  
# Python使用的是2.7.6,缩进可以使用tab、4个空格或2个空格,但是只能任选其中一种,不能多种混用
while 1:
    a=[]  
    s = raw_input()
    # raw_input()里面不要有任何提示信息
    if s != "":
        for x in s.split():  
            a.append(int(x))  

        print sum(a)
    else:
        break

javascript

版本

Google V8 Engine(6.2.340)

输入API

读取一行输入

read_line()

将读取至多1024个字符,当还未达到1024个时如果遇到回车或结束符,提前结束。

读取多行最简单的办法是while((line = read_line()) != '')。

或者使用下一个API。

读取n个字符

gets(n)

将读取至多n个字符,当还未达到n个时如果遇到回车或结束符,会提前结束。

回车符可能会包含在返回值中。

读取一个(长)整数

readInt()

读取一个浮点型

readDouble()

输出API

不加回车的输出

printsth(sth, ...)

往控制台输出sth,当有多个参数时,空格分隔;最后不加回车。

带回车的输出

print(sth, ...)

console.log(sth, ...)

往控制台输出sth,当有多个参数时,空格分隔;最后加回车。

示例代码1

var a, b;
var solveMeFirst = (a,b) => a+b;
while((a=readInt())!=null && (b=readInt())!=null){
    let c = solveMeFirst(a, b);
    print(c);
}

示例代码2

var line;
var solveMeFirst = (a,b) => a+b;
while((line = read_line()) != ''){
    let arr = line.split(' ');
    let a = parseInt(arr[0]);
    let b = parseInt(arr[1]);
    let c = solveMeFirst(a, b);
    print(c);
}

V8源码

https://github.com/acmcodercom/v8/tree/forstdio_baseon_6.2.340/samples

Nodejs

版本

6.9.1

输入输出

process.stdin、process.stdout

readline

node-stdio (https://www.npmjs.com/package/node-stdio)

示例代码1

var cmd = require('node-stdio')
var a, b;
var solveMeFirst = (a,b) => a+b;
while((a=cmd.readInt())!=null && (b=cmd.readInt())!=null){
    let c = solveMeFirst(a, b);
    cmd.print(c);
}

示例代码2

process.stdin.resume();
process.stdin.setEncoding('utf-8');
 
var input = "";
var input_array = "";

//这里不灵活,需要全部读取数据后再处理,容易超内存。
process.stdin.on('data', function (data) {
    input += data;
});

var solveMeFirst = (a, b) => a+b;

process.stdin.on('end', function () {
    let arr = input.split("\n");
    for (var i=0; i<arr.length; i++) {
	    if (arr[i] != '') {
            input_array = arr[i].split(" ");
            
            let inline = 0;
            let res;
            let _a = parseInt(input_array[inline].trim(), 10);
            inline += 1;
        
            let _b = parseInt(input_array[inline].trim(), 10);
            inline += 1;
        
            res = solveMeFirst(_a, _b);
            process.stdout.write("" + res + "\n");
	    }
    }
});

示例代码3

var readline = require('readline');
process.stdin.setEncoding('utf-8');

var rl = readline.createInterface({input: process.stdin, output: process.stdout, prompt:''});
rl.prompt();

var solveMeFirst = (a, b) => a+b;

rl.on('line', function (data) {
    let arr = data.split(' ');
    if (arr && arr.length==2) {
        let c = solveMeFirst(+arr[0], +arr[1]);
        process.stdout.write('' + c + '\n');
    }
});

SQL

题型

SQL分为2中题型,sqlite3和mysql8;

有些客户只考sqlite3,有些客户只考mysql8。

sqlite3

SQLite3支持标准的SQL语法

具体见:https://labfiles.acmcoder.com/sqlite-doc/lang.html;

SQLite3内置支持的有些函数与其他数据库不同

具体见:https://labfiles.acmcoder.com/sqlite-doc/lang_corefunc.html。

mysql

版本:8.0.24

默认安装,所以表名和列名大小写敏感(后期有可能改为大小写不敏感)。

C语言

版本:5.4.0

root@oj-tk2sd:/# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.4.0-6ubuntu1~16.04.12' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release--build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12)

编译命令

gcc Main.c -o Main -O2 -fno-asm -Wall -lm -static -std=c99

示例代码

#include <stdio.h>
int main()
{
   int a, b;
   while(scanf("%d%d", &a, &b) != EOF)
      printf("%d\n", a + b);
}

C++

版本 5.4.0

root@oj-tk2sd:/# g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.4.0-6ubuntu1~16.04.12' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release--build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12)

编译命令

g++ Main.cc -o Main -O2 -fno-asm -Wall -lm -static -std=c++11 -lrt -Wl,--whole-archive -lpthread -Wl,--no-whole-archive

示例代码

#include  <iostream> 
using namespace std;
int main()
{
    int a, b;
    while(cin>> a >> b)
    cout << a + b << endl;
    return 0;
}

建议使用scanf

读取输入时,建议使用scanf代替cin,因为对于大规模数据时,由于cin的内部实现原理,容易超时。

clang

版本 7.0.1

clang version 7.0.1 (tags/RELEASE_701/final)

编译命令

clang Main.c -o Main -fno-asm -Wall -lm -static -std=c99

clang++

版本 7.0.1

clang version 7.0.1 (tags/RELEASE_701/final)

编译命令

clang++ Main.cc -o Main -I/usr/include/c++/4.8 -I/usr/include/x86_64-linux-gnu/c++/4.8 -fno-asm -Wall -lm -static -std=c++11 -lrt -Wl,--whole-archive -lpthread -Wl,--no-whole-archive

golang

版本 1.2.1

go version go1.2.1 linux/amd64

go version go1.13.15 linux/amd64 灰度中...

编译命令

go build -o Main.exe -p 1 Main.go

示例代码

package main
import "fmt"
import "io"
func main() {
  a:=0
  b:=0
  for {
    _, err := fmt.Scanf("%d%d",&a,&b)
    if err != nil {
        if err == io.EOF {
            break
        }
    } else {
		fmt.Printf("%d\n",a+b)
	}
  }
}

ruby

版本 1.9.3p484

ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]

编译命令

ruby -c Main.rb

示例代码

a=gets
while a != nil && a != "" && a != "\r" && a != "\n" do
    arr = a.split(" ")
    sum = 0
    arr.each_with_index do |value, index|
        sum = sum + value.to_i
    end
    puts sum.to_s
    a=gets
end

bash

版本

GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu)

示例代码

#!/bin/bash
 
read -a arr
#echo ${#arr[@]}
while [ ${#arr[@]} -eq 2 ]
do
sum=$((${arr[0]}+${arr[1]}))
echo "$sum"
read -a arr
done

Swift

版本

Swift version 4.2.3

示例代码

import Foundation

var ab = readLine() ?? "break"
while ab != "break"
{
  let array = ab.split(separator: " ")
  let a = Int(array[0])!
  let b = Int(array[1])!
  print(a+b)
  ab = readLine() ?? "break"
}

Lua

版本

Lua 5.3.2

示例代码

local count = 0
function string.split(str, delimiter)
	if str==nil or str=='' or delimiter==nil then
		return nil
	end
	
    local result = {}
    for match in (str..delimiter):gmatch("(.-)"..delimiter) do
        table.insert(result, match)
    end
    return result
end
while true do
	local line = io.read()
	if line == nil or line == "" then break end
	local tb = string.split(line, " ")
	local sum = 0
	for i=1, #tb do
		local a = tonumber(tb[i])
		sum = sum+a
	end
	if count>0 then
		io.write("\n")
	end
	io.write(string.format("%d", sum))
	count = count+1
end

PHP

版本

PHP 5.5.9-1ubuntu4.14 (cli)

示例代码

<?php
function solveMeFirst($a,$b){
    return $a + $b;
}
$handle = fopen ("php://stdin","r");
$s = fgets($handle);
while ($s != "") {
	$a = explode(" ", $s);
	$sum = solveMeFirst((int)$a[0],(int)$a[1]);
	print ($sum);
	print ("\n");
	$s = fgets($handle);
}
fclose($handle);
?>

R语言

版本

R3.4.1

示例代码

con <- file("stdin", "r")  
a = readLines(con, n = 1)
b = readLines(con, n = 1)
while (a!="" && b!="") {
  c = as.numeric(a) + as.numeric(b)
  cat(format(c, scientific = FALSE))
  cat('\n')
  a = readLines(con, n = 1)
  b = readLines(con, n = 1)
}
close(con)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.