for($k=0;$k<=5;$k++){
if($k+1<=5&&$k-1>=0){
if($newAr[$k]==3||$newAr[$k]==5){
if(($newAr[$k-1]==5||$newAr[$k-1]==3)||($newAr[$k+1]==5||$newAr[$k+1]==3)){
$delFlag=1;
break;
}
}
}
}
这个循环的判断逻辑,不是一般的乱啊……要判断3、5相连,我就直接join newAr,然后搜索35或者53这个字符串……
if($k+1<=5&&$k-1>=0){
if($newAr[$k]==3||$newAr[$k]==5){
if(($newAr[$k-1]==5||$newAr[$k-1]==3)||($newAr[$k+1]==5||$newAr[$k+1]==3)){
$delFlag=1;
break;
}
}
}
}
这个循环的判断逻辑,不是一般的乱啊……要判断3、5相连,我就直接join newAr,然后搜索35或者53这个字符串……
$rand_keys=(array_rand($str,6))如果每次结果的顺序一样就怪了
#define BaseMHconst int MAX_BASE=62;
const String BASE_DIGIT="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
const int DEFAULT_LENGTH=8;
const int DEFAULT_BASE=16;class BaseM
{
public:
BaseM();
BaseM(int Base);
BaseM(const BaseM &aNumber);
BaseM(long l, int Base);
BaseM(String s, int Base);
~BaseM();// Operators
BaseM& operator = (const BaseM &);
BaseM operator + (const BaseM &);
BaseM operator + (const int &M);
friend ostream& operator<< (ostream& os, const BaseM &M);private:
int _Base; // Base for the number
int _Digits; // How many digits to store
char * Digits; // String to store digits
void Allocate(); long _DecValue;
};
//-------------------------------------------------------------
#endif 示范代码:
#include <vcl.h>
#pragma hdrstop#include "BaseM.h"
#include "Support.h"//---------------------------------------------------------------------------#pragma argsused
int main(int argc, char* argv[])
{
BaseM a(12345, 16);
BaseM b("0000", 8);for (int i=1;i<=4096;i++)
{
b=b+1;
String s=FillString(b.StrPresentation(), 4, '0');
if(StringHasDuplicate(s))
continue;
else
cout<<s.c_str()<<" ";
}return 0;
}实际运行时,可以看到程序输出了从最小的0123到最大的7654。