读书人

简单的算法,该怎么解决

发布时间: 2012-04-21 14:34:44 作者: rapoo

简单的算法
算法:
从a循环到zzzzz
如:a->b->c->...->z->aa->ab->...->zzzzz

[解决办法]

C/C++ code
#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位“空格+数字”的阿斯克码字符串赋值,双重循环搞定。

读书人网 >软件架构设计

热点推荐