javascript - 求一个算法?0000000序列递增

WBOY
Lepaskan: 2016-08-04 09:21:25
asal
1098 orang telah melayarinya

举个栗子:0000000递增,格式是这样的:

<code>0000001
0000002
0000003
.....递增到10
0000010
.....递增到100
0000100
.....递增到100000
0100000
</code>
Salin selepas log masuk
Salin selepas log masuk

模仿着@G_Koala_C的回答,写了php版的:

<code>for ($i = 0; $i 0; $j--) { 
        $zero .= 0;
    }
    echo $zero.$i.'<br>';
}</code>
Salin selepas log masuk
Salin selepas log masuk

javascript - 求一个算法?0000000序列递增

回复内容:

举个栗子:0000000递增,格式是这样的:

<code>0000001
0000002
0000003
.....递增到10
0000010
.....递增到100
0000100
.....递增到100000
0100000
</code>
Salin selepas log masuk
Salin selepas log masuk

模仿着@G_Koala_C的回答,写了php版的:

<code>for ($i = 0; $i 0; $j--) { 
        $zero .= 0;
    }
    echo $zero.$i.'<br>';
}</code>
Salin selepas log masuk
Salin selepas log masuk

javascript - 求一个算法?0000000序列递增

js写法, 原理就是先算数字的长度,然后在前边补零。现在是到100,你可以把i改到100000

<code>for (var i = 0 ; i  0; j--) {
    zero += "0";
  }
  console.log(zero + i);
}</code>
Salin selepas log masuk

其实是补零的问题额,Python 3写这样:

<code>["{:0>7}".format(i) for i in range(1, 100001)]</code>
Salin selepas log masuk

再提供一个js的写法

<code>Array.from(Array(1000000).keys()).map(function(x){ return "0".repeat(8 - ("" + (x + 1)).length) + (x+1)})</code>
Salin selepas log masuk

PHP

<code>for ($i=0;$i</code>
Salin selepas log masuk

提供一个未来可能能使用的方法。。

<code>for (let i = 0; i </code>
Salin selepas log masuk

<code>function incrace(){
    console.log((n=>(7-n.length)>0?(new Array(7-n.length+1)).join(0)+n:n)(String(i++)));
    setTimeout(incrace,500);
}
var i = 0;
incrace();
</code>
Salin selepas log masuk

写完才发现问题已经解答了…js代码,供参考

JS

<code>var len = 10;    //长度
for (var i = 1; i </code>
Salin selepas log masuk

来来来...上一套PHP版野路子

<code>// 定义一个位数比结果位数多的初始值
$base_num = 10000000;
// 开搞
for ($i = 0; $i </code>
Salin selepas log masuk

看我C语言的:

<code>for (int i = 0; i </code>
Salin selepas log masuk

补零后的长度其实也是可配的:

<code>// 补零后长度, 注意printf的变化~
in len = 7;
for (int i = 0; i </code>
Salin selepas log masuk

我发现很多回答都不是真正意义上的算法,我还以为类似C语言printf函数的实现呢.

上一个模拟printf函数的C语言实现吧,这个问题不用计算长度

请在支持C99的编译器上运行.(C89不支持)

<code>#include <string.h>
#include <stdlib.h>

void ltoa(long num, int width, char *str)
{
    static char digs[] = "0123456789";//为了方便扩展十六进制
    char ac[width+1];// C99支持; +1 是因为字符串必须以'\0'结尾,但这个不计入字符串长度.
    int i = width; // 这个变量可以直接用i代替的,但是这个函数是我之前写的,懒得改下面代码
    memset(&ac, '0', width); //直接把全部内存先置'0'
    ac[i] = '\0';//字符串结尾必须是'\0'
    
    //后面是整数转字符串的代码,思路就是除法和余数得到每一位数字(进制转换也是同样思想)
    //例如123 /10 = 12_3
    //   12 / 10 = 1_2
    //    1 / 10 = 0_1 
    //你可以看到,余数 3,2,1 倒置过来就是1,2,3.
    //把 3, 2 ,1 倒置复制到 内存空间就行了.
    if(num)
        ac[--i] = digs[num % 10];

    num = num / 10;
    while( 0 </stdlib.h></string.h></code>
Salin selepas log masuk

<code>    int max = 一个数字;
    for (int i = 0; i </code>
Salin selepas log masuk

有人把值改成100000以上么

为啥没有C/C++版本啊。
看你们写的这么复杂我就放心了

这还要写什么算法吗?来个mysql版本的:

<code>CREATE TABLE `test` (
  `tid` int(7) UNSIGNED ZEROFILL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;</code>
Salin selepas log masuk
Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!