我想得到的总和1 + 2 + ... + 1000000000
,但我在PHP和Node.js得到了有趣的结果.
PHP
$sum = 0;
for($i = 0; $i <= 1000000000 ; $i++) {
$sum += $i;
}
printf("%s", number_format($sum, 0, "", "")); // 500000000067108992
Run Code Online (Sandbox Code Playgroud)
Node.js的
var sum = 0;
for (i = 0; i <= 1000000000; i++) {
sum += i ;
}
console.log(sum); // 500000000067109000
Run Code Online (Sandbox Code Playgroud)
可以使用计算正确的答案
1 + 2 + ... + n = n(n+1)/2
Run Code Online (Sandbox Code Playgroud)
正确答案= 500000000500000000,所以我决定尝试另一种语言.
走
var sum , i int64
for i = 0 …
Run Code Online (Sandbox Code Playgroud) 如何为以下条件写一个swtich?
如果网址包含 "foo",则settings.base_url为"bar".
以下是实现所需的效果,但我觉得这在交换机中更易于管理:
var doc_location = document.location.href;
var url_strip = new RegExp("http:\/\/.*\/");
var base_url = url_strip.exec(doc_location)
var base_url_string = base_url[0];
//BASE URL CASES
// LOCAL
if (base_url_string.indexOf('xxx.local') > -1) {
settings = {
"base_url" : "http://xxx.local/"
};
}
// DEV
if (base_url_string.indexOf('xxx.dev.yyy.com') > -1) {
settings = {
"base_url" : "http://xxx.dev.yyy.com/xxx/"
};
}
Run Code Online (Sandbox Code Playgroud) 我有一个很长的条件语句,如下所示:
if(test.type == 'itema' || test.type == 'itemb' || test.type == 'itemc' || test.type == 'itemd'){
// do something.
}
Run Code Online (Sandbox Code Playgroud)
我想知道我是否可以将这个表达式/语句重构为更简洁的形式.
有关如何实现这一点的任何想法?
在"标准"笔记本电脑x86硬件上计算MD5散列的CPU密集程度是否比SHA-1或SHA-2少?我对一般信息感兴趣,不是特定于某个芯片.
更新: 在我的情况下,我有兴趣计算文件的哈希值.如果文件大小很重要,我们假设它是300K.
在Windows中,命令行字符串的最大长度是多少?这意味着如果我指定一个在命令行上接受参数的程序,例如abc.exe -name=abc
我编写的一个简单的控制台应用程序通过命令行获取参数,我想知道最大允许量是多少.
我正在将代码从Linux C移植到Visual C++ for windows.
Visual C++不知道#include <stdint.h>
所以我评论了它.
后来,我发现了很多这些'uint32_t': identifier not found
错误.怎么解决?
我见过C++社区中的很多人(特别是freenode上的## c ++)对windows api 的使用wstrings
和使用感到不满wchar_t
.究竟是什么"错误"有wchar_t
和wstring
,如果我要支持国际化,有一些什么替代宽字符?
我对这个问题的回答是这个函数:
inline bool divisible15(unsigned int x)
{
//286331153 = (2^32 - 1) / 15
//4008636143 = (2^32) - 286331153
return x * 4008636143 <= 286331153;
}
Run Code Online (Sandbox Code Playgroud)
它完全适用于我的机器与VS2008编译器,但在这里它根本不起作用.
有没有人有想法,为什么我在不同的编译器上得到不同的结果? unsigned
溢出不是未定义的行为.
重要提示:经过一些测试后,确认它比将除法的余数除以15更快.(但不是在所有编译器上)
代码:
<?php
$start = 0;
$stop = 1;
$step = ($stop - $start)/10;
$i = $start + $step;
while ($i < $stop) {
echo($i . "<br/>");
$i += $step;
}
?>
Run Code Online (Sandbox Code Playgroud)
输出:
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1 <-- notice the 1 printed when it shouldn't
Run Code Online (Sandbox Code Playgroud)
创造了一个小提琴
还有一个:如果设置$start = 1
和$stop = 2
它工作正常.
使用: php 5.3.27
为什么1
印刷?
c++ ×4
c ×3
javascript ×2
php ×2
command-line ×1
cryptography ×1
hash ×1
if-statement ×1
md5 ×1
memory ×1
node.js ×1
precision ×1
regex ×1
sha1 ×1
sha2 ×1
unicode ×1
visual-c++ ×1
winapi ×1
windows ×1
wstring ×1