用Java写一个程序:使其输出从A-Z的排序字母
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/07 18:44:08
用Java写一个程序:使其输出从A-Z的排序字母
要求:给定一个数(如int count = k),k是个可变量(可以是任意大于0的int值,如k = 1237),写一个for(int i=1;i=2,不足的以A补足),如此类推一直到i=count.这里假设如果到i=count时输出的是name="BFN",则前面当i = 1时,也应当则输出name = "AAA"(就是说输入的位数要相等,不足的以A补足).
如果给出好的代码的话再附加50赏分,能运行得到想要的结果并被采纳的至少也加30赏分.
要求:给定一个数(如int count = k),k是个可变量(可以是任意大于0的int值,如k = 1237),写一个for(int i=1;i=2,不足的以A补足),如此类推一直到i=count.这里假设如果到i=count时输出的是name="BFN",则前面当i = 1时,也应当则输出name = "AAA"(就是说输入的位数要相等,不足的以A补足).
如果给出好的代码的话再附加50赏分,能运行得到想要的结果并被采纳的至少也加30赏分.
按照你的要求写的如下代码,精短而高效,可以直接运行
public class Luck {
\x09public static void main(String[] args) {
\x09\x09int count = 1237;//count,手动指定范围
\x09\x09// 确定字符串的长度
\x09\x09int length = 1;
\x09\x09int temp = count;
\x09\x09while ((temp = temp / 26) > 0) {
\x09\x09\x09length++;
\x09\x09}
\x09\x09// 从1输出到count
\x09\x09for (int a = 1; a 0) {
\x09\x09\x09\x09s = (char) ('A' + i % 26) + s;
\x09\x09\x09\x09i = (i - i % 26) / 26;
\x09\x09\x09}
\x09\x09\x09while (s.length() < length) {
\x09\x09\x09\x09s = 'A' + s;
\x09\x09\x09}
\x09\x09\x09System.out.println(s);
\x09\x09}
\x09}
}
再问: 当输入count < 26时,只输出一位,这里要求最少输出两位(当count = 1时输出"AA")。当count = 676时输出"ZZ",当count = 677时输入的是从"AAA"—>"BAA"。
再答: 你好,代码修改成功,请试试 public class Luck { public static void main(String[] args) { int count = 677;// count,手动指定范围 // 确定字符串的长度 int length = 0; int temp = count - 1; while (temp > 0) { temp = (temp - temp % 26) / 26; length++; } temp = Math.max(temp, 2);// 保证输出的最小长度 // 从1输出到count for (int a = 1; a 0) { s = (char) ('A' + i % 26) + s; i = (i - i % 26) / 26; } while (s.length() < length) { s = 'A' + s; } System.out.println(s); } } }
再问: 当int count = 26*26*26+1时输出的就有不对了(输出的是……ZZZ和BAAA),位数不太对,就是length的控制还不太正确。就为这个length的值让我想了好久哦。
再答: 你好,这回终于搞定了,终于明白你的意思了 AA~ZZ,BAA~ZZZ,BAAA~ZZZZ,BAAAA~ZZZZZ... public class Luck { public static void main(String[] args) { int count = 26 * 26 * 26 + 1;// count,手动指定范围 // 从1输出到count for (int a = 1; a 0) { s = (char) ('A' + i % 26) + s; i = (i - i % 26) / 26; } // 确定字符串的长度 i = a; int length = 0; while ((i /= 26) > 0) { length++; } // 保证输出的最小长度 length = Math.max(length, 2); // 不足的前面补A while (s.length() < length) { s = 'A' + s; } System.out.println(s); } } }
再问: 不好意思,是我说得不太清楚。我想要的是这样的:由count值决定要输出多少字符串,当最后输出的是ZZ时,前面的就是AA、AB~ZZ,当最后输出的是ZZZ时,前面的就是AAA、AAB~ZZZ。就是说输出的字符(最少两位),随着最后输出的字符串长度决定前面字符串的长度。如最后输出BAAA,第一个输出的就是AAAA、第二个是AAAB,即从AAAA~BAAA。谢谢。
再答: 你好,留下QQ吧,你没发现你最后说明的这个需求,不正是我那倒数第二段代码吗?
public class Luck {
\x09public static void main(String[] args) {
\x09\x09int count = 1237;//count,手动指定范围
\x09\x09// 确定字符串的长度
\x09\x09int length = 1;
\x09\x09int temp = count;
\x09\x09while ((temp = temp / 26) > 0) {
\x09\x09\x09length++;
\x09\x09}
\x09\x09// 从1输出到count
\x09\x09for (int a = 1; a 0) {
\x09\x09\x09\x09s = (char) ('A' + i % 26) + s;
\x09\x09\x09\x09i = (i - i % 26) / 26;
\x09\x09\x09}
\x09\x09\x09while (s.length() < length) {
\x09\x09\x09\x09s = 'A' + s;
\x09\x09\x09}
\x09\x09\x09System.out.println(s);
\x09\x09}
\x09}
}
再问: 当输入count < 26时,只输出一位,这里要求最少输出两位(当count = 1时输出"AA")。当count = 676时输出"ZZ",当count = 677时输入的是从"AAA"—>"BAA"。
再答: 你好,代码修改成功,请试试 public class Luck { public static void main(String[] args) { int count = 677;// count,手动指定范围 // 确定字符串的长度 int length = 0; int temp = count - 1; while (temp > 0) { temp = (temp - temp % 26) / 26; length++; } temp = Math.max(temp, 2);// 保证输出的最小长度 // 从1输出到count for (int a = 1; a 0) { s = (char) ('A' + i % 26) + s; i = (i - i % 26) / 26; } while (s.length() < length) { s = 'A' + s; } System.out.println(s); } } }
再问: 当int count = 26*26*26+1时输出的就有不对了(输出的是……ZZZ和BAAA),位数不太对,就是length的控制还不太正确。就为这个length的值让我想了好久哦。
再答: 你好,这回终于搞定了,终于明白你的意思了 AA~ZZ,BAA~ZZZ,BAAA~ZZZZ,BAAAA~ZZZZZ... public class Luck { public static void main(String[] args) { int count = 26 * 26 * 26 + 1;// count,手动指定范围 // 从1输出到count for (int a = 1; a 0) { s = (char) ('A' + i % 26) + s; i = (i - i % 26) / 26; } // 确定字符串的长度 i = a; int length = 0; while ((i /= 26) > 0) { length++; } // 保证输出的最小长度 length = Math.max(length, 2); // 不足的前面补A while (s.length() < length) { s = 'A' + s; } System.out.println(s); } } }
再问: 不好意思,是我说得不太清楚。我想要的是这样的:由count值决定要输出多少字符串,当最后输出的是ZZ时,前面的就是AA、AB~ZZ,当最后输出的是ZZZ时,前面的就是AAA、AAB~ZZZ。就是说输出的字符(最少两位),随着最后输出的字符串长度决定前面字符串的长度。如最后输出BAAA,第一个输出的就是AAAA、第二个是AAAB,即从AAAA~BAAA。谢谢。
再答: 你好,留下QQ吧,你没发现你最后说明的这个需求,不正是我那倒数第二段代码吗?
用Java写一个程序:使其输出从A-Z的排序字母
用java语言编写一个程序对任意三个整数进行排序并输出结果
求一个java排序的程序!字典顺序的!
java 1.编写程序,从命令行输入三个整数(整数的大小自己随意设置),从小到大排序并输出.要求在程序中
编写一个java application程序,运用加密操作将字母变成倒序字母,如A变成Z,B变成Y?
用Java语言设计一个程序,从键盘输入3个整数,按照从小到大的顺序输出.是用Java语言哦,
写一个完整的程序,计算1到150的奇数之和 ,偶数之和并输出运算结果 用java
设计一个java程序,从键盘输入三个整数,按照从小到大的顺序输出
按字母表的顺序,从字母A到Z输出
编写java程序,定义一个2*3的数组a和一个3*4的数组b,在定义一个数组c,使其存放矩阵,最后输出结果
用C语言写出如何输出所有英文字母并从Z-A排序!
用java编写一个输出1到00以内的素数并求和的程序