简单的算法
算法:
从a循环到zzzzz
如:a->b->c->...->z->aa->ab->...->zzzzz
[解决办法]
#include <iostream>using namespace std;int main(){ char ch1, ch2, ch3, ch4, ch5; cout << 'a'; for (ch1 = 'b'; ch1 <= 'z'; ++ch1) cout << "->" << ch1; for (ch1 = 'a'; ch1 <= 'z'; ++ch1) { for (ch2 = 'a'; ch2 <= 'z'; ++ch2) cout << "->" << ch1 << ch2; } for (ch1 = 'a'; ch1 <= 'z'; ++ch1) { for (ch2 = 'a'; ch2 <= 'z'; ++ch2) { for (ch3 = 'a'; ch3 <= 'z'; ++ch3) cout << "->" << ch1 << ch2 << ch3; } } for (ch1 = 'a'; ch1 <= 'z'; ++ch1) { for (ch2 = 'a'; ch2 <= 'z'; ++ch2) { for (ch3 = 'a'; ch3 <= 'z'; ++ch3) { for (ch4 = 'a'; ch4 <= 'z'; ++ch4) cout << "->" << ch1 << ch2 << ch3 << ch4; } } } for (ch1 = 'a'; ch1 <= 'z'; ++ch1) { for (ch2 = 'a'; ch2 <= 'z'; ++ch2) { for (ch3 = 'a'; ch3 <= 'z'; ++ch3) { for (ch4 = 'a'; ch4 <= 'z'; ++ch4) { for (ch5 = 'a'; ch5 <= 'z'; ++ch5) cout << "->" << ch1 << ch2 << ch3 << ch4 << ch5; } } } } return 0;}
[解决办法]
模拟26进制
[解决办法]
#include <iostream>
using namespace std;
#ifndef LENGTH
#define LENGTH 5
#endif
int main(void){
char buffer[LENGTH+1]={0};
for(int i=0; i<LENGTH; ++i){
for(int t=0; t<=i; ++t)buffer[t]='a';
while(!buffer[i+1]){
for(int j=i; j>=0; --j)cout<<buffer[j];
cout<<endl;
++buffer[0];
for(int j=0; j<=i; ++j){
if(buffer[j]>'z'){
buffer[j]='a';
++buffer[j+1];
}
}
}
}
}
g++ -DLENGTH=3 -c -o Test.o Test.cpp
g++ -o Test Test.o
./Test
[解决办法]
用5位“空格+数字”的阿斯克码字符串赋值,双重循环搞定。