js统计 1 到 400或者n之间的自然数中含有多少个 1?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js统计 1 到 400或者n之间的自然数中含有多少个 1?相关的知识,希望对你有一定的参考价值。

function getOne()
var count = 0; //定义初始个数
for(var i = 1; i <= 11; i++) //从1到400
for(var j = 0; j < i.toString().length; j++) //把每个数拆分成单个数字,如123拆分成"1","2","3"
if(i.toString()[j] === "1") //如果包含1
count++; //统计1的个数


return count;

console.log(getOne()); //弹出结

某些结果有问题比如1到11结果为4,代码怎么改?

2,12,20,22,32,42,52,62,72,82,92,102,120,,112,122,132,142,152,162,172,182,192,202 然后以此类推
一共是有45个带2的 400-45=355个
答一共355个不带二的自然数
参考技术A 没错4啊,1,10,11

如何使用 node.js 获取系统统计信息

【中文标题】如何使用 node.js 获取系统统计信息【英文标题】:How to get system statistics with node.js 【发布时间】:2012-05-07 03:14:49 【问题描述】:

我有一个分布式服务器系统。

有很多服务器,通过 PubSub 进行协调。 它们都连接到统计服务器。 服务器每分钟将其统计信息发送到统计服务器(处理了多少请求、平均时间等)。

所以...在此统计消息中包含系统状态会很好。 我需要 CPU 负载(每个内核)和可用内存量。

我做了一个小变通,决定用“exec”调用一个linux命令,解析答案并形成一个JSON数据进行发送。

但是我怎样才能从命令行获取这些数据呢?

在 Mac OS X 上,我可以使用 geektool 脚本轻松获得所需的一切,但在 linux (debian) 上它们不起作用。

例如:

top -l 1 | awk '/PhysMem/ print "Used: " $8 " Free: " $10'

在 Mac OS X Lion 上我得到:

Used: 3246M Free: 848M

而且只是 debian 中的一个错误...

【问题讨论】:

你试过 Dtrace 吗? mcavage.github.com/presentations/dtrace_conf_2012-04-03 github.com/sebhildebrandt/systeminformation ***.com/questions/26208454/… 【参考方案1】:

在 Linux 上,您可以使用 /proc。请参阅here 获取一系列命令行示例以读取统计信息。

最好直接从 Node 读取文件,使用fs.readFile()

更新: 还有可能更好的OS API。 用法示例:Convert the output of os.cpus() in Node.js to percentage

【讨论】:

非常感谢!找到了获得可用内存量的方法,但我仍然无法在每个内核上获得 CPU 负载。并且... /proc/loadavg 返回零。正常吗? 使用 os.loadavg();.它将以数组的形式返回服务器在 1 分钟、5 分钟和 15 分钟内的总负载。【参考方案2】:

恕我直言,最好的选择是使用systeminformation 模块,

您可以在其中检索具有 Linux、macOS、部分 Windows 和 FreeBSD 支持的详细硬件、系统和操作系统信息。

例如获取CPU信息:

const si = require('systeminformation');

// callback style
si.cpu(function(data) 
    console.log('CPU-Information:');
    console.log(data);
);

// promises style - new in version 3
si.cpu()
    .then(data => console.log(data))
    .catch(error => console.error(error));

// full async / await example (node >= 7.6)
async function cpu() 
    try 
        const data = await si.cpu();
        console.log(data)
     catch (e) 
        console.log(e)
    

此示例将产生以下结果:

 manufacturer: 'Intel®',
    brand: 'Core™ i5-3317U',
    vendor: 'GenuineIntel',
    family: '6',
    model: '58',
    stepping: '9',
    revision: '',
    voltage: '',
    speed: '1.70',
    speedmin: '0.80',
    speedmax: '2.60',
    cores: 4,
    cache:  l1d: 32768, l1i: 32768, l2: 262144, l3: 3145728  
CPU-Information:
 manufacturer: 'Intel®',
    brand: 'Core™ i5-3317U',
    vendor: 'GenuineIntel',
    family: '6',
    model: '58',
    stepping: '9',
    revision: '',
    voltage: '',
    speed: '1.70',
    speedmin: '0.80',
    speedmax: '2.60',
    cores: 4,
    cache:  l1d: 32768, l1i: 32768, l2: 262144, l3: 3145728  

【讨论】:

【参考方案3】:

您可以尝试os-usage,它是top 命令的包装器。

它提供诸如 cpu 使用情况和内存使用情况的统计信息。示例用法:

var usage = require('os-usage');

// create an instance of CpuMonitor
var cpuMonitor = new usage.CpuMonitor();

// watch cpu usage overview
cpuMonitor.on('cpuUsage', function(data) 
    console.log(data);

    //  user: '9.33', sys: '56.0', idle: '34.66' 
);

// watch processes that use most cpu percentage
cpuMonitor.on('topCpuProcs', function(data) 
    console.log(data);

    // [  pid: '21749', cpu: '0.0', command: 'top' ,
    //   pid: '21748', cpu: '0.0', command: 'node' ,
    //   pid: '21747', cpu: '0.0', command: 'node' ,
    //   pid: '21710', cpu: '0.0', command: 'com.apple.iCloud' ,
    //   pid: '21670', cpu: '0.0', command: 'LookupViewServic'  ]
);

【讨论】:

【参考方案4】:

无耻的塞- https://www.npmjs.com/package/microstats

还可以配置为在磁盘空间、cpu 或内存超过用户定义的阈值时提醒用户。适用于 linux、macOS 和 windows。

【讨论】:

以上是关于js统计 1 到 400或者n之间的自然数中含有多少个 1?的主要内容,如果未能解决你的问题,请参考以下文章

统计0到n之间1的个数[数学,动态规划dp](经典,详解)

众数问题(山东理工OJ)

C语言练手题(52个小练习)

2022-08-24:给定一个长度为3N的数组,其中最多含有012三种值, 你可以把任何一个连续区间上的数组,全变成012中的一种, 目的是让012三种数字的个数都是N。 返回最小的变化次

数字统计

NOIP200704统计数字