JavaScript - アルゴリズムをお探しですか? 0000000 シーケンス増分
举个栗子:0000000递增,格式是这样的:
<code>0000001 0000002 0000003 .....递增到10 0000010 .....递增到100 0000100 .....递增到100000 0100000 </code>
模仿着@G_Koala_C的回答,写了php版的:
<code>for ($i = 0; $i < 100; $i++) { $zero = ''; $k = 7-strlen($i); for ($j = $k; $j >0; $j--) { $zero .= 0; } echo $zero.$i.'<br>'; }</code>
回复内容:
举个栗子:0000000递增,格式是这样的:
<code>0000001 0000002 0000003 .....递增到10 0000010 .....递增到100 0000100 .....递增到100000 0100000 </code>
模仿着@G_Koala_C的回答,写了php版的:
<code>for ($i = 0; $i < 100; $i++) { $zero = ''; $k = 7-strlen($i); for ($j = $k; $j >0; $j--) { $zero .= 0; } echo $zero.$i.'<br>'; }</code>
js写法, 原理就是先算数字的长度,然后在前边补零。现在是到100,你可以把i改到100000
<code>for (var i = 0 ; i <= 100; i ++){ var zero = ""; for (var j = 7-i.toString().length; j > 0; j--) { zero += "0"; } console.log(zero + i); }</code>
其实是补零的问题额,Python 3写这样:
<code>["{:0>7}".format(i) for i in range(1, 100001)]</code>
再提供一个js的写法
<code>Array.from(Array(1000000).keys()).map(function(x){ return "0".repeat(8 - ("" + (x + 1)).length) + (x+1)})</code>
PHP
<code>for ($i=0;$i<=9999999;$i++) echo str_pad($i,7,"0",STR_PAD_LEFT);</code>
提供一个未来可能能使用的方法。。
<code>for (let i = 0; i <= 100; i++) console.log(String(i).padStart(7,'0'))</code>
<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>
写完才发现问题已经解答了…js代码,供参考
JS
<code>var len = 10; //长度 for (var i = 1; i <= 100; i++) { console.log((Array(len).join(0) + Math.abs(i)).slice(-len)); }</code>
来来来...上一套PHP版野路子
<code>// 定义一个位数比结果位数多的初始值 $base_num = 10000000; // 开搞 for ($i = 0; $i < 100; $i++) { echo substr($base_num += $i, -7), "\n"; }</code>
看我C语言的:
<code>for (int i = 0; i < 10000000; i++) { printf("%07d\n", i); }</code>
补零后的长度其实也是可配的:
<code>// 补零后长度, 注意printf的变化~ in len = 7; for (int i = 0; i < 10000000; i++) { printf("%0*d\n", len, i); }</code>
我发现很多回答都不是真正意义上的算法,我还以为类似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 < num && 0 < i) { ldiv_t qr = ldiv(num, 10); // ldiv_t 用结构体,主要方便一次性取出余数和商 num = qr.quot; ac[--i] = digs[qr.rem]; // 把0,1,3,4转换成'0','1','2','3',也可用0+'0' 的方法,但是上面已经说明,为了扩展到其他进制方便. } int n = sizeof(ac) - i; memcpy(str, &ac, width +1);//把字符串和\0 复制到缓冲区. } </code>
<code> int max = 一个数字; for (int i = 0; i < max; i++) { String tem = ""; for (int j = 0; j < len - (i + "").toString().length(); j++) { tem = tem + "0"; } System.out.println(tem+i); }</code>
有人把值改成100000以上么
为啥没有C/C++版本啊。
看你们写的这么复杂我就放心了
这还要写什么算法吗?来个mysql版本的:
<code>CREATE TABLE `test` ( `tid` int(7) UNSIGNED ZEROFILL DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;</code>

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

エラーの原因とソリューションPECLを使用してDocker環境に拡張機能をインストールする場合、Docker環境を使用するときに、いくつかの頭痛に遭遇します...

Cでは、文字列でCharタイプが使用されます。1。単一の文字を保存します。 2。配列を使用して文字列を表し、ヌルターミネーターで終了します。 3。文字列操作関数を介して動作します。 4.キーボードから文字列を読み取りまたは出力します。

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。
