目錄
JavaScript V8模式
JavaScript node模式
題目類型一:A+B
第一題:輸入包括兩個(gè)正整數(shù)a,b(1 <= a, b <= 1000),輸入數(shù)據(jù)包括多組。
第二題:輸入第一行包括一個(gè)數(shù)據(jù)組數(shù)t(1 <= t <= 100),接下來(lái)每行包括兩個(gè)正整數(shù)a,b(1 <= a, b <= 1000)
第三題:輸入包括兩個(gè)正整數(shù)a,b(1 <= a, b <= 10^9),輸入數(shù)據(jù)有多組, 如果輸入為0 0則結(jié)束輸入
第四題:輸入數(shù)據(jù)包括多組。每組數(shù)據(jù)一行,每行的第一個(gè)整數(shù)為整數(shù)的個(gè)數(shù)n(1 <= n <= 100), n為0的時(shí)候結(jié)束輸入。接下來(lái)n個(gè)正整數(shù),即需要求和的每個(gè)正整數(shù)。
第五題:輸入的第一行包括一個(gè)正整數(shù)t(1 <= t <= 100), 表示數(shù)據(jù)組數(shù)。接下來(lái)t行, 每行一組數(shù)據(jù)。每行的第一個(gè)整數(shù)為整數(shù)的個(gè)數(shù)n(1 <= n <= 100)。接下來(lái)n個(gè)正整數(shù), 即需要求和的每個(gè)正整數(shù)。
第六題:輸入數(shù)據(jù)有多組, 每行表示一組輸入數(shù)據(jù)。每行的第一個(gè)整數(shù)為整數(shù)的個(gè)數(shù)n(1 <= n <= 100)。接下來(lái)n個(gè)正整數(shù), 即需要求和的每個(gè)正整數(shù)。
第七題:輸入數(shù)據(jù)有多組, 每行表示一組輸入數(shù)據(jù)。每行不定有n個(gè)整數(shù),空格隔開(kāi)。(1 <= n <= 100)。
題目類型二:字符串排序
第一題:輸入有兩行,第一行n 第二行是n個(gè)字符串,字符串之間用空格隔開(kāi)
第二題:多個(gè)測(cè)試用例,每個(gè)測(cè)試用例一行。 每行通過(guò)空格隔開(kāi),有n個(gè)字符,n<100
第三題:多個(gè)測(cè)試用例,每個(gè)測(cè)試用例一行。 每行通過(guò),隔開(kāi),有n個(gè)字符,n<100
注意:自測(cè)本地AC,提交0
練習(xí)試題:??透?jìng)賽_ACM/NOI/CSP/CCPC/ICPC算法編程高難度練習(xí)賽_??透?jìng)賽OJ (nowcoder.com)
JavaScript V8模式
- 輸入的數(shù)據(jù)是以字符串形式,將字符串轉(zhuǎn)換成數(shù)字:parseInt(xx)? ?或? ??parseFloat(xx)
- 讀取一行數(shù)據(jù):let line = readline()
- 輸出數(shù)據(jù),輸出自動(dòng)換行:print()? 或? console.log()
- 退出讀取數(shù)據(jù):break
JavaScript node模式
- 輸入的數(shù)據(jù)是以字符串形式,將字符串轉(zhuǎn)換成數(shù)字:parseInt(xx)? ?或? ??parseFloat(xx)
- 開(kāi)頭先設(shè)置好讀取數(shù)據(jù)的格式:
const rl = require("readline").createInterface({ input: process.stdin }); var iter = rl[Symbol.asyncIterator](); const readline = async () => (await iter.next()).value;
- 在while里書(shū)寫(xiě)邏輯:
void async function () { // Write your code here let number = deadline(); // 第一行是輸入的數(shù)據(jù)的組數(shù) while(line = await readline()){ // 操作數(shù)據(jù)的邏輯 } }()
- 輸出數(shù)據(jù),輸出自動(dòng)換行:?console.log()
- 退出讀取數(shù)據(jù):break
題目類型一:A+B
第一題:輸入包括兩個(gè)正整數(shù)a,b(1 <= a, b <= 1000),輸入數(shù)據(jù)包括多組。
輸入:
1 5
10 20輸出:
6
30
V8:
while(line=readline()){
let lines = line.split(' ');
let a = parseInt(lines[0]);
let b = parseInt(lines[1]);
print(a+b);
}
node:
// 設(shè)定好如何讀數(shù)據(jù)
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void async function () {
// Write your code here
let number = readline();
while(line = await readline()){
let tokens = line.split(' ');
let a = parseInt(tokens[0]);
let b = parseInt(tokens[1]);
console.log(a + b);
}
}()
第二題:輸入第一行包括一個(gè)數(shù)據(jù)組數(shù)t(1 <= t <= 100),接下來(lái)每行包括兩個(gè)正整數(shù)a,b(1 <= a, b <= 1000)
輸入:
2
1 5
10 20輸出:
6
30
V8:
let r = parseInt(readline()); // 讀首行,確定行數(shù)
for (let i=0; i<r; i++){ // 從第二行開(kāi)始遍歷,讀取每一行的數(shù)據(jù)
let arr = readline().split(" ").map(item => parseInt(item)); // 將每一行的數(shù)據(jù)字符串切分成數(shù)字并存入數(shù)組arr
let [a,b] = arr; // 解構(gòu)出a和b
print(a+b)
}
node:
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void async function () {
// Write your code here
let number = readline();
while(line = await readline()){
let tokens = line.split(' ');
let a = parseInt(tokens[0]);
let b = parseInt(tokens[1]);
console.log(a + b);
}
}()
第三題:輸入包括兩個(gè)正整數(shù)a,b(1 <= a, b <= 10^9),輸入數(shù)據(jù)有多組, 如果輸入為0 0則結(jié)束輸入
輸入:
1 5
10 20
0 0輸出:
6
30
V8:
let line = '';
// 從第一行開(kāi)始,讀取每一行數(shù)組字符串
while (line = readline()) {
// 將每一行的數(shù)據(jù)字符串轉(zhuǎn)換成數(shù)字并以數(shù)組items的形式存儲(chǔ)
let items = line.split(" ").map(item=>parseInt(item));
// 如果讀取到輸入為0 0
if (items[0] === 0 && items[1] ===0) {
// 以break退出循環(huán)讀入航
break;
}
print(items[0]+items[1])
}
node:
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void async function () {
// Write your code here
while(line = await readline()){
let tokens = line.split(' ');
let a = parseInt(tokens[0]);
let b = parseInt(tokens[1]);
if (a === 0 && b === 0) {
break;
}
console.log(a + b);
}
}()
第四題:輸入數(shù)據(jù)包括多組。每組數(shù)據(jù)一行,每行的第一個(gè)整數(shù)為整數(shù)的個(gè)數(shù)n(1 <= n <= 100), n為0的時(shí)候結(jié)束輸入。接下來(lái)n個(gè)正整數(shù),即需要求和的每個(gè)正整數(shù)。
輸入:
4 1 2 3 4
5 1 2 3 4 5
0輸出:
10
15
V8:
let line = "";
while (line = readline()) {
let items = line.split(' ').map(item => parseInt(item));
if (items[0] === 0) {
break;
}
let sum = 0;
for (let i=0; i<items[0]; i++) {
sum += items[1+i];
}
print(sum)
}
node:
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void async function () {
// Write your code here
while(line = await readline()){
let tokens = line.split(' ').map(item => parseInt(item));
let sum = 0;
if (tokens[0] === 0) {
break;
}
for (let i=1; i<tokens.length; i++){
sum += tokens[i]
}
console.log(sum)
}
}()
第五題:輸入的第一行包括一個(gè)正整數(shù)t(1 <= t <= 100), 表示數(shù)據(jù)組數(shù)。接下來(lái)t行, 每行一組數(shù)據(jù)。每行的第一個(gè)整數(shù)為整數(shù)的個(gè)數(shù)n(1 <= n <= 100)。接下來(lái)n個(gè)正整數(shù), 即需要求和的每個(gè)正整數(shù)。
輸入:
2
4 1 2 3 4
5 1 2 3 4 5輸出:
10
15
V8:
let t = parseInt(readline());
let line = '';
while(t--){
line = readline();
let items = line.split(' ').map(item=>parseInt(item));
let sum = 0;
for (let i=0; i<items[0]; i++) {
sum += items[1+i];
}
print(sum)
}
node:
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void async function () {
// Write your code here
let number = readline();
while(line = await readline()){
let tokens = line.split(' ').map(item => parseInt(item));
let sum = 0;
for (let i=1; i<tokens.length; i++) {
sum += tokens[i]
}
console.log(sum)
}
}()
第六題:輸入數(shù)據(jù)有多組, 每行表示一組輸入數(shù)據(jù)。每行的第一個(gè)整數(shù)為整數(shù)的個(gè)數(shù)n(1 <= n <= 100)。接下來(lái)n個(gè)正整數(shù), 即需要求和的每個(gè)正整數(shù)。
輸入:
4 1 2 3 4
5 1 2 3 4 5輸出:
10
15
V8:
let line = "";
// 一直讀數(shù)據(jù)
while (line = readline()){
let sum = 0;
let items = line.split(" ").map(item => parseInt(item));
for (i=0; i<items[0]; i++) {
sum += items[i+1];
}
print(sum)
}
node:
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void async function () {
// Write your code here
while(line = await readline()){
let tokens = line.split(' ').map(item => parseInt(item));
let sum =0;
for (let i=1; i<tokens.length; i++) {
sum += tokens[i];
}
console.log(sum)
}
}()
第七題:輸入數(shù)據(jù)有多組, 每行表示一組輸入數(shù)據(jù)。每行不定有n個(gè)整數(shù),空格隔開(kāi)。(1 <= n <= 100)。
輸入:
1 2 3
4 5
0 0 0 0 0輸出:
6
9
0
V8:
let line = "";
while (line = readline()) {
let sum = 0;
let items = line.split(" ").map(item => parseInt(item));
for (i=0; i<items.length; i++){
sum += items[i]
}
print(sum)
}
node:
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void async function () {
// Write your code here
while(line = await readline()){
let tokens = line.split(' ').map(item => parseInt(item));
let sum = 0;
for (let i=0; i<tokens.length; i++) {
sum += tokens[i];
}
console.log(sum)
}
}()
題目類型二:字符串排序
第一題:輸入有兩行,第一行n 第二行是n個(gè)字符串,字符串之間用空格隔開(kāi)
輸入:
5
c d a bb e輸出:
a bb c d e
V8:
let t = readline(); // 第一行,字符串個(gè)數(shù)
let lines = readline().split(" ").map(line => line);
print(lines.sort().join(" "))
node:
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void (async function () {
// Write your code here
let number = readline();
while ((line = await readline())) {
let tokens = line.split(" ");
console.log(tokens.sort().join(" "));
}
})();
第二題:多個(gè)測(cè)試用例,每個(gè)測(cè)試用例一行。 每行通過(guò)空格隔開(kāi),有n個(gè)字符,n<100
輸入:
a c bb
f dddd
nowcoder輸出:
a bb c
dddd f
nowcoder
V8:
let lines = "";
while (lines = readline()) {
let items = lines.split(" ").map(item => item);
print(items.sort().join(" "))
}
node:
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void async function () {
// Write your code here
while(line = await readline()){
let tokens = line.split(' ');
console.log(tokens.sort().join(" "))
}
}()
第三題:多個(gè)測(cè)試用例,每個(gè)測(cè)試用例一行。 每行通過(guò),隔開(kāi),有n個(gè)字符,n<100
輸入:
a,c,bb
f,dddd
nowcoder輸出:
a,bb,c
dddd,f
nowcoder
V8:
let lines = "";
while (lines = readline()) {
let items = lines.split(",").map(item => item);
print(items.sort().join(","));
}
node:
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void async function () {
// Write your code here
while(line = await readline()){
let tokens = line.split(',');
console.log(tokens.sort().join(","))
}
}()
注意:自測(cè)本地AC,提交0
可能是因?yàn)?/p>
1.你對(duì)題目理解錯(cuò)了,你的代碼只過(guò)了樣例或你自己的數(shù)據(jù)
2.你的代碼邏輯有問(wèn)題,你的代碼只過(guò)了樣例或你自己的數(shù)據(jù)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-669066.html
總之就是你的代碼只是過(guò)了樣例和自測(cè)數(shù)據(jù),后臺(tái)的測(cè)試數(shù)據(jù)你根本不可見(jiàn),要多自己思考。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-669066.html
到了這里,關(guān)于ACM模式輸入輸出練習(xí)(JS V8模式 + JS node模式)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!