编写一个程序,使用Java打印出从最小到最大的int数据类型的所有可能值.
截至2009年5月8日格林尼治标准时间10:44的一些值得注意的解决方案:
1)Daniel Lew是第一个发布正确工作代码的人.
2)Kris 为给定问题提供了最简单的解决方案.
3)Tom Hawtin - 强调,可以说是最优雅的解决方案.
4)mmyers指出,打印很可能成为瓶颈,可以通过缓冲来改善.
5)Jay的暴力方法值得注意,因为除了违反编程的核心点之外,最终的源代码大约需要128 GB并且会破坏编译器限制.
作为旁注,我相信答案确实证明它可能是一个很好的面试问题,只要重点不在于能否记住关于数据类型溢出及其含义的琐事(在单元测试中很容易发现) ),或获取MAX和MIN限制的方式(可以在文档中轻松查找),而是分析处理问题的各种方法.
Dan*_*Lew 15
class Test {
public static void main(String[] args) {
for (int a = Integer.MIN_VALUE; a < Integer.MAX_VALUE; a++) {
System.out.println(a);
}
System.out.println(Integer.MAX_VALUE);
}
}
Run Code Online (Sandbox Code Playgroud)
我被录用了吗?
Kri*_*ris 14
最简单的形式(最小代码):
for (long i = Integer.MIN_VALUE; i <= Integer.MAX_VALUE; i++) {
System.out.println(i);
}
Run Code Online (Sandbox Code Playgroud)
没有整数溢出,没有额外的检查(只是更多的内存使用,但谁没有32个备用位).
虽然我想
for (long i = Integer.MIN_VALUE; i <= Integer.MAX_VALUE; i++)
System.out.println(i);
Run Code Online (Sandbox Code Playgroud)
字符较少,我不能说它更简单.更短不一定更简单,但它确实有更少的代码.
我只需要添加答案......
public class PrintInts {
public static void main(String[] args) {
int i = Integer.MIN_VALUE;
do {
System.out.println(i);
++i;
} while (i != Integer.MIN_VALUE);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6681 次 |
| 最近记录: |