使用 NodeJS 的回调和事件发射器功能
Callback and event emitter functionality using NodeJS
程序语言为NodeJS
待办步骤:
1.变量input有输入值。从输入中提取 n1 和 n2。
2. 编写一个函数求出 n1 和 n2 所有小于等于 1000 的倍数之和。该函数应在 2 秒后记录总和。
3. 为事件发射器的任何实例注册一个名为 MyEvent 的事件,并为其绑定一个名为 logInfo 的函数,该函数将 "Multiples of {n1} & {n2}" 记录到控制台并发射事件(发射事件时不要传递任何参数) .
约束条件
- input:输入,由space
分隔的字符串
- 输出:由换行符分隔的字符串
注意:即使您获得了准确的输出,如果您不使用问题陈述中提到的回调和事件概念,测试用例也会失败。
示例案例 0
自定义测试的样本输入
100 1000
示例输出:
100 和 1000 的倍数
6500
说明
100的倍数为100,200,300,......1000 1000的倍数为1000以下含1000.
总和 = (100+200+............1000) + 1000
总和 = 6500
示例案例 1
自定义测试的示例输入
500 1200
示例输出:
500 和 1200 的倍数
1500
我试过下面的代码:
process.stdin.resume();
process.stdin.setEncoding("ascii");
var input = "";
process.stdin.on("data", function (chunk) {
input += chunk;
});
process.stdin.on("end", function () {
let _input = input.split (" ");
let a = parseInt(_input[0]);
let b = parseInt(_input[1]);
console.log("Multiples of " + a + " & " + b);
var sum = 0;
for (var x = 0; x < 1000; x++)
{
if (x % a === 0 || x % b === 0)
{
sum += x;
}
}
console.log(sum);
});
代码测试:
案例一
输入(标准输入)
4 6
你的输出(标准输出)
4 和 6 的倍数
165834
预期输出
4 和 6 的倍数
208666
============================================= ==
案例二
输入(标准输入)
3 5
你的输出(标准输出)
3 和 5 的倍数
233168
预期输出
3 和 5 的倍数
267333
请帮助我获取此代码。我的输出不符合这个逻辑。
希望下面的代码对您有所帮助,并给出预期的输出。谢谢! :)
process.stdin.resume();
process.stdin.setEncoding("ascii");
var input = "";
process.stdin.on("data", function (chunk) {
input += chunk;
});
process.stdin.on("end", function () {
const myArr = input.split(" ");
const EventEmitter = require('events');
var eventEmitter = new EventEmitter();
let sum=0;
let a = myArr[0];
let b = myArr[1];
for(let i=3; i<=1000; i++){
if(i%a==0){
sum += i
}
if(i%b==0){
sum+=i
}
}
eventEmitter.on('MyEvent', logInfo);
function logInfo(input) {
console.log("Multiples of " + a + " & "+ b);
console.log(sum);
}
eventEmitter.emit('MyEvent', "");
});
process.stdin.resume();
process.stdin.setEncoding("ascii");
var input = "";
process.stdin.on("data", function (chunk) {
input += chunk;
});
process.stdin.on("end", function () {
const myArr = input.split(" ");
const EventEmitter = require('events');
var eventEmitter = new EventEmitter();
let sum=0;
let a = myArr[0];
let b = myArr[1];
for(let i=3; i<=1000; i++){
if(i%a==0){
sum += i
}
if(i%b==0){
sum+=i
}
}
eventEmitter.on('MyEvent', function(){
setTimeout(function(){
console.log("Multiples of " + a + " & "+ b);
console.log(sum);},5000);
});
eventEmitter.emit('MyEvent');
});
检查以下解决方案
process.stdin.resume();
process.stdin.setEncoding("ascii");
var input = "";
process.stdin.on("data", function (chunk) {
input += chunk;
});
process.stdin.on("end", function () {
const myArr = input.split(" ");
const EventEmitter = require('events');
var eventEmitter = new EventEmitter();
let sum=0;
let a = myArr[0];
let b = myArr[1];
for(let i=3; i<=1000; i++){
if(i%a==0){
sum += i
}
if(i%b==0){
sum+=i
}
}
eventEmitter.on('MyEvent', logInfo);
function logInfo(input) {
console.log("Multiples of " + a + " & "+ b);
console.log(sum);
}
eventEmitter.emit('MyEvent', "");
});
我只调用了控制台作为异步函数,请避免我的错误。
process.stdin.on("end", function () {
// Enter your code here
const myArr = input.split(" ");
const EventEmitter = require('events');
var eventEmitter = new EventEmitter();
let sum=0;
let a = myArr[0];
let b = myArr[1];
for(let i=3; i<=1000; i++){
if(i%a==0){
sum += i
}
if(i%b==0){
sum+=i
}
}
setTimeout(function(){
console.log(sum);
},2000)
eventEmitter.on('MyEvent', logInfo);
function logInfo() {
console.log("Multiples of " + a + " & "+ b);
}
eventEmitter.emit('MyEvent');
});
我找到了正确的解决方案。
process.stdin.resume();
process.stdin.setEncoding("ascii");
var input = "";
process.stdin.on("data", function (chunk) {
input += chunk;
});
process.stdin.on("end", function () {
const EventEmitter = require('events');
let data = input.split(" ");
n1 = data[0];
n2 = data[1];
// console.log(n1,n2);
let result = 0;
const sum = () => {
for (let i = 0; i <= 1000; i++) {
if (i % n1 == 0) {
result += i;
}
}
for (let j = 0; j <= 1000; j++) {
if (j % n2 == 0) {
result += j;
}
}
console.log(result);
}
setTimeout(sum, 2000);
const event = new EventEmitter();
event.on("MyEvent", () => {
console.log(`Multiples of ${n1} & ${n2}`);
})
event.emit("MyEvent");
});
程序语言为NodeJS
待办步骤: 1.变量input有输入值。从输入中提取 n1 和 n2。 2. 编写一个函数求出 n1 和 n2 所有小于等于 1000 的倍数之和。该函数应在 2 秒后记录总和。 3. 为事件发射器的任何实例注册一个名为 MyEvent 的事件,并为其绑定一个名为 logInfo 的函数,该函数将 "Multiples of {n1} & {n2}" 记录到控制台并发射事件(发射事件时不要传递任何参数) .约束条件
- input:输入,由space 分隔的字符串
- 输出:由换行符分隔的字符串
注意:即使您获得了准确的输出,如果您不使用问题陈述中提到的回调和事件概念,测试用例也会失败。
示例案例 0
自定义测试的样本输入 100 1000 示例输出: 100 和 1000 的倍数 6500
说明 100的倍数为100,200,300,......1000 1000的倍数为1000以下含1000.
总和 = (100+200+............1000) + 1000
总和 = 6500
示例案例 1
自定义测试的示例输入
500 1200
示例输出:
500 和 1200 的倍数
1500
我试过下面的代码:
process.stdin.resume();
process.stdin.setEncoding("ascii");
var input = "";
process.stdin.on("data", function (chunk) {
input += chunk;
});
process.stdin.on("end", function () {
let _input = input.split (" ");
let a = parseInt(_input[0]);
let b = parseInt(_input[1]);
console.log("Multiples of " + a + " & " + b);
var sum = 0;
for (var x = 0; x < 1000; x++)
{
if (x % a === 0 || x % b === 0)
{
sum += x;
}
}
console.log(sum);
});
代码测试:
案例一
输入(标准输入)
4 6
你的输出(标准输出)
4 和 6 的倍数
165834
预期输出
4 和 6 的倍数
208666
============================================= ==
案例二
输入(标准输入)
3 5
你的输出(标准输出)
3 和 5 的倍数
233168
预期输出
3 和 5 的倍数
267333
请帮助我获取此代码。我的输出不符合这个逻辑。
希望下面的代码对您有所帮助,并给出预期的输出。谢谢! :)
process.stdin.resume();
process.stdin.setEncoding("ascii");
var input = "";
process.stdin.on("data", function (chunk) {
input += chunk;
});
process.stdin.on("end", function () {
const myArr = input.split(" ");
const EventEmitter = require('events');
var eventEmitter = new EventEmitter();
let sum=0;
let a = myArr[0];
let b = myArr[1];
for(let i=3; i<=1000; i++){
if(i%a==0){
sum += i
}
if(i%b==0){
sum+=i
}
}
eventEmitter.on('MyEvent', logInfo);
function logInfo(input) {
console.log("Multiples of " + a + " & "+ b);
console.log(sum);
}
eventEmitter.emit('MyEvent', "");
});
process.stdin.resume();
process.stdin.setEncoding("ascii");
var input = "";
process.stdin.on("data", function (chunk) {
input += chunk;
});
process.stdin.on("end", function () {
const myArr = input.split(" ");
const EventEmitter = require('events');
var eventEmitter = new EventEmitter();
let sum=0;
let a = myArr[0];
let b = myArr[1];
for(let i=3; i<=1000; i++){
if(i%a==0){
sum += i
}
if(i%b==0){
sum+=i
}
}
eventEmitter.on('MyEvent', function(){
setTimeout(function(){
console.log("Multiples of " + a + " & "+ b);
console.log(sum);},5000);
});
eventEmitter.emit('MyEvent');
});
检查以下解决方案
process.stdin.resume();
process.stdin.setEncoding("ascii");
var input = "";
process.stdin.on("data", function (chunk) {
input += chunk;
});
process.stdin.on("end", function () {
const myArr = input.split(" ");
const EventEmitter = require('events');
var eventEmitter = new EventEmitter();
let sum=0;
let a = myArr[0];
let b = myArr[1];
for(let i=3; i<=1000; i++){
if(i%a==0){
sum += i
}
if(i%b==0){
sum+=i
}
}
eventEmitter.on('MyEvent', logInfo);
function logInfo(input) {
console.log("Multiples of " + a + " & "+ b);
console.log(sum);
}
eventEmitter.emit('MyEvent', "");
});
我只调用了控制台作为异步函数,请避免我的错误。
process.stdin.on("end", function () {
// Enter your code here
const myArr = input.split(" ");
const EventEmitter = require('events');
var eventEmitter = new EventEmitter();
let sum=0;
let a = myArr[0];
let b = myArr[1];
for(let i=3; i<=1000; i++){
if(i%a==0){
sum += i
}
if(i%b==0){
sum+=i
}
}
setTimeout(function(){
console.log(sum);
},2000)
eventEmitter.on('MyEvent', logInfo);
function logInfo() {
console.log("Multiples of " + a + " & "+ b);
}
eventEmitter.emit('MyEvent');
});
我找到了正确的解决方案。
process.stdin.resume();
process.stdin.setEncoding("ascii");
var input = "";
process.stdin.on("data", function (chunk) {
input += chunk;
});
process.stdin.on("end", function () {
const EventEmitter = require('events');
let data = input.split(" ");
n1 = data[0];
n2 = data[1];
// console.log(n1,n2);
let result = 0;
const sum = () => {
for (let i = 0; i <= 1000; i++) {
if (i % n1 == 0) {
result += i;
}
}
for (let j = 0; j <= 1000; j++) {
if (j % n2 == 0) {
result += j;
}
}
console.log(result);
}
setTimeout(sum, 2000);
const event = new EventEmitter();
event.on("MyEvent", () => {
console.log(`Multiples of ${n1} & ${n2}`);
})
event.emit("MyEvent");
});