输入包括两个正整数a,b(1 <= a, b <= 1000),输入数据包括多组。
输出描述: 输出a+b的结果
输入例子1:
1 5
10 20
输出例子1:
6
30

  1. while (line=readline()){
  2. let arr=line.split(" ");
  3. print(parseInt(arr[0])+parseInt(arr[1]));
  4. }

输入描述:
输入第一行包括一个数据组数t(1 <= t <= 100)
接下来每行包括两个正整数a,b(1 <= a, b <= 1000)
输出描述:
输出a+b的结果
输入例子1:
2
1 5
10 20
输出例子1:
6
30

  1. while(line=readline()){
  2. let arr=line.split(' ');
  3. if(+arr[0] + +arr[1]!=0)
  4. print(+arr[0] + +arr[1]);
  5. }

输入描述:
输入数据包括多组。
每组数据一行,每行的第一个整数为整数的个数n(1 <= n <= 100), n为0的时候结束输入。
接下来n个正整数,即需要求和的每个正整数。
输出描述:
每组数据输出求和的结果
输入例子1:
4 1 2 3 4
5 1 2 3 4 5
0
输出例子1:
10
15

  1. while(line = readline()) {
  2. const arr = line.split(' ');
  3. let res = 0;
  4. for (let i = 1; i <= arr[0] ;i++)
  5. res += parseInt(arr[i]);
  6. if(parseInt(arr[0]) === 0) break;
  7. print(res);
  8. }

输入描述:
输入的第一行包括一个正整数t(1 <= t <= 100), 表示数据组数。
接下来t行, 每行一组数据。
每行的第一个整数为整数的个数n(1 <= n <= 100)。
接下来n个正整数, 即需要求和的每个正整数。
输出描述:
每组数据输出求和的结果
输入例子1:
2
4 1 2 3 4
5 1 2 3 4 5
输出例子1:
10
15

  1. let count = Number(readline());
  2. while (count--) {
  3. const nums = readline().split(' ').slice(1);
  4. let sum = 0;
  5. for (let i = 0; i < nums.length; i++)
  6. sum += Number(nums[i]);
  7. print(sum);
  8. }

输入描述:
输入数据有多组, 每行表示一组输入数据。
每行的第一个整数为整数的个数n(1 <= n <= 100)。
接下来n个正整数, 即需要求和的每个正整数。
输出描述:
每组数据输出求和的结果
输入例子1:
4 1 2 3 4
5 1 2 3 4 5
输出例子1:
10
15

  1. while(line=readline()){
  2. let n=line.split(' ').slice(1);
  3. let s=n.reduce((a,b)=>parseInt(a)+parseInt(b));
  4. console.log(s)
  5. }

输入描述:
输入数据有多组, 每行表示一组输入数据。
每行不定有n个整数,空格隔开。(1 <= n <= 100)。
输出描述:
每组数据输出求和的结果
输入例子1:
1 2 3
4 5
0 0 0 0 0
输出例子1:
6
9
0

  1. while(line=readline()){
  2. let n=line.split(' ');
  3. let sum=n.reduce((a,b)=>parseInt(a)+parseInt(b));
  4. console.log(sum);
  5. }

输入描述:
输入有两行,第一行n
第二行是n个字符串,字符串之间用空格隔开
输出描述:
输出一行排序后的字符串,空格隔开,无结尾空格
输入例子1:
5
c d a bb e
输出例子1:
a bb c d e

  1. let n=readline();
  2. let str=readline();
  3. let newstr=str.split(' ').sort().join(' ');
  4. print(newstr);

输入描述:
多个测试用例,每个测试用例一行。
每行通过空格隔开,有n个字符,n<100
输出描述:
对于每组测试用例,输出一行排序过的字符串,每个字符串通过空格隔开
输入例子1:
a c bb
f dddd
nowcoder
输出例子1:
a bb c
dddd f
nowcoder

  1. while(line = readline()){
  2. let tmp = line.split(" ").sort().join(" ");
  3. print(tmp);
  4. }

输入描述:
多个测试用例,每个测试用例一行。
每行通过,隔开,有n个字符,n<100
输出描述:
对于每组用例输出一行排序后的字符串,用’,’隔开,无结尾空格
输入例子1:
a,c,bb
f,dddd
nowcoder
输出例子1:
a,bb,c
dddd,f
nowcoder

  1. var line;
  2. while(line = readline()){
  3. let tmp = line.split(",").sort().join(",");
  4. print(tmp);
  5. }

赛码网输入输出问题(js v8)

我觉得文档上写的很不清楚,看了我半天才看懂
对于js v8引擎来说,操作是这样的

读取相关

read_line()

功能:读取一行输入
解释:将读取至多1024个字符,当还未达到1024个时如果遇到回车或结束符,提前结束。
说明:读取多行最简单的办法是while((line = read_line()) != ‘’)。

gets(n)

功能:读取n个字符
解释:将读取至多n个字符,当还未达到n个时如果遇到回车或结束符,会提前结束。
说明:回车符可能会包含在返回值中。**

readInt()

功能:读取一个长整数
readDouble()
功能:读取一个浮点型

输出相关

printsth(sth, …)

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

console.log(sth, …)

说明:带回车的输出
解释:往控制台输出sth,当有多个参数时,空格分隔;最后加回车。
好了 大概就是这些
但是我们输出的时候一般使用conssole.log()就好了
毕竟学前端的对这个api应该已经刻骨铭心了
那我们就拿赛码网的一个例题来写一下
image.png
这里是读取多行输入,我们写在while条件语句里
while((line = read_line()) != ‘’)这样就可以读取多行输入了

  1. var line;
  2. let getSum = (m,n) => {
  3. let sum = 0;
  4. while(n) {
  5. sum += m;
  6. m = Math.sqrt(m);
  7. n--;
  8. }
  9. return sum.toFixed(2) ;
  10. }
  11. while((line = read_line()) != ''){//读取
  12. let arr = line.split(' ');
  13. let m = parseInt(arr[0]);
  14. let n = parseInt(arr[1]);
  15. let sum = getSum(m, n);
  16. console.log(sum);//输出
  17. }

另外对于只有一组输入的
举例,输入第一行是数字n,之后跟着n行数据。
这种情况只需要先读一个 n,然后再循环读n次的数据即可。

  1. let n = readInt();
  2. let arr = [];
  3. for(let i = 0; i < n; i++)
  4. {
  5. arr[i] = read_line();
  6. }

赛码网的笔试算法题大都都是支持本地IDE的,
但是对于我们前端来说,在vscode上进行输入样例很麻烦
甚至我对这方面的东西非常生疏
现在我们有一个很好的办法来配置vscode,让我们的vscode也能方便的测试案例
使用了这个方法后 我们能直接将本地的测试好的代码贴到赛码网上,不需要再进行其他的修改
有一个很好用的npm包readline-sync
接下来我们安装他
在本地ide终端上执行以下指令
npm install readline-sync
然后在文件中引入模块并重命名
var readline = require(‘readline-sync’)
readline.setDefaultOptions({prompt: ‘’})
var read_line = __readline.prompt
这里赛码网上读取的方法是read_line 所以我们也重命名为read_line
然后我们就可以愉快的在vscode上写代码了
下面再演示一下在vscode上写刚刚的例题:

  1. 创建一个js文件
  2. 编写代码 ```javascript //导入包 var readline = require(‘readline-sync’) readline.setDefaultOptions({prompt: ‘’}) var read_line = __readline.prompt

//下面的代码是我们需要贴到赛码网编译器的 var line; let getSum = (m,n) => { let sum = 0; while(n) { sum += m; m = Math.sqrt(m); n—; } return sum.toFixed(2) ; }

while((line = read_line()) != ‘’){ let arr = line.split(‘ ‘); let m = parseInt(arr[0]); let n = parseInt(arr[1]); let sum = getSum(m, n); console.log(sum); } ```

  1. 在终端中执行node .\赛码网输入输出测试.js

    上面是node指令,表示执行某一个文件 就不多说了
    这个时候我们就可以输入样例了
    4.输入样例
    image.png
    可以看到已经输出了正确的结果
    测试没有问题后,我们就可以把代码放到赛码网编译器执行了.