问题描述
- 如何设计一个a到z的26个字母的无限循环
-
如何设计一个a到z的26个字母的无限循环,类似于数字相加一样,当从a循环到z的时候,下一个就是aa循环到zz,然后就是aaa到zzz,依此类推,无限循环下去
解决方案
27进制?a到z可以看作1到26,满27则进位。比如1代表a,26代表z,1-26则代表az,下一位是1-27,满27进位,为2-1,即ba。这个是那个狂点屏幕里的技术方法吧
解决方案二:
好吧,循环一遍我会,这个不会。正好学习学习
解决方案三:
无限循环下去,可以写成 while(1),呵呵...
后继的实现要用字符串吧,因为像 aa 这样的直接用数字无法表示了。
char cBuf[256];
cBuf[0] = a;
然后执行 cBuf[0]++;直到 z;
再将 cBuf[0] = a 和 cBuf[1] = a; 然后执行 cBuf[0/1]++;直到 z;
依次循环。
解决方案四:
满足你
public class Test {
public static void main(String[] args) {
test1(4);
}
/**
* <pre>
* 方法名: test1
* @param c 次数 如果为0则无限循环
* 返回值: void
* @Throws
* </pre>
*/
public static void test1(int c){
c = c*26;
boolean flag = true;
int x = 1;
String cst = "a";
int f = 0;
System.out.println(cst);
while(flag){
if(c>0){
f++;
if(f==c){
flag = false;
}
}
if(x>26){
int l = cst.length();
cst = "";
for (int i = 0; i < l+1; i++) {
cst += "a";
}
System.out.println(cst);
x = 1;
}else{
char charAt = cst.charAt(0);
int l = cst.length();
charAt++;
if(charAt<=122){//122是z
String v = String.valueOf(charAt);
cst = "";
for (int i = 0; i < l; i++) {
cst += v;
}
System.out.println(cst);
}
}
x++;
}
}
}
解决方案五:
题目有歧义,可以理解成两种:
1. a , b , ... , z, aa, ab, ..., az, ba, ..., bz, ..., zz...
2. a, b, ..., z, aa, bb, ..., zz, ...
解决方案六:
#include "stdafx.h"
#include <iostream>
using namespace std;
void PrintAlpha(const size_t nCount)
{
for(size_t i = 0; i != nCount; ++i)
{
for(char alpha = 'a'; alpha <= 'z'; ++alpha)
{
for(size_t j = 0; j <= i; ++j)
{
cout << alpha;
}
cout << " ";
}
cout << endl;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
PrintAlpha(3);
return 0;
}
解决方案七:
Java代码如下,这个会一直循环下去的,运行一下就赶快关闭,否则...
/**
* 设计一个a到z的26个字母的无限循环,类似于数字相加一样,当从a循环到z的时候,下一个就是aa循环到zz,然后就是aaa到zzz,依此类推,
* 无限循环下去
*/
private void printAz() {
String azStr = new String("abcdefghijklmnopqrstuvwxyz");
char[] azChar = azStr.toCharArray();
int repeat = 1;
while (true) {
for (int i = 0; i < azChar.length; i++) {
for (int j = 0; j < repeat; j++) {
System.out.print(azChar[i]);
}
System.out.println();
}
repeat++;
}
}
解决方案八:
这个是那个狂点屏幕里的技术方法吧
时间: 2024-11-03 01:33:32