public class PrintNum { public int print(int n){ int a = n>1?print(n-1)+1:1; System.out.println(a); return a; } public static void main(String[] args){ PrintNum p = new PrintNum(); p.print(1000); } }自己写的啊~
第一题public class Test { public static void main(String[] args) {
第二题: public class TestLoop { static int top = 1000; static int bot = 1;
public static void main(String[] args) { myprint(0, top); } static int myprint(int x, int y) { System.out.println(bot); bot = (bot == top)? bot : myprint(++bot, top); return bot; } }
不错的题目public class A { public static int print(int i){ System.out.println(i); int j = (++i>1000)? 0 : print(i); return j; } public static void main(String[] args){ int a =1; print(a); } }
不错的题目public class A { public static int print(int i){ System.out.println(i); int j = (++i>1000)? 0 : print(i); return j; } public static void main(String[] args){ int a =1; print(a); } }
public class PrintNum { public int print(int n){
int a = n>1?print(n-1)+1:1;
System.out.println(a);
return a;
}
public static void main(String[] args){ PrintNum p = new PrintNum();
p.print(1000);
}
}自己写的啊~
double d = 1.0%0;
while(d == d){
}
System.out.println("over");
}
}
第二题我有种方法用递归int i=1;public void printNum(){
System.out.println(i);
i++;
if(i == 1000){
return;
}
printNum();
}
可以让i!=i吗?
当你看到这个命题的时候一定会以为我疯了,或者Java语言疯了。这看起来是绝对不可能的,一个数怎么可能不等于它自己呢?或许就真的是Java语言疯了,不信看下面的代码输出什么?
double i=0.0/0.0;
if(i==i){
System.out.println("Yes i==i");
}else{
System.out.println("No i!=i");
} 上面的代码输出"No i!=i",为什么会这样呢?关键在0.0/0.0这个值,在IEEE 754浮点算术规则里保留了一个特殊的值用来表示一个不是数字的数量。这个值就是NaN("Not a Number"的缩写),对于所有没有良好定义的浮点计算都将得到这个值,比如:0.0/0.0;其实我们还可以直接使用Double.NaN来得到这个值。在IEEE 754规范里面规定NaN不等于任何值,包括它自己。所以就有了i!=i的代码。
public class TestLoop {
static int top = 1000;
static int bot = 1;
public static void main(String[] args) {
myprint(0, top);
}
static int myprint(int x, int y) {
System.out.println(bot);
bot = (bot == top)? bot : myprint(++bot, top);
return bot;
}
}
public static int print(int i){
System.out.println(i);
int j = (++i>1000)? 0 : print(i);
return j;
}
public static void main(String[] args){
int a =1;
print(a);
}
}
public static int print(int i){
System.out.println(i);
int j = (++i>1000)? 0 : print(i);
return j;
}
public static void main(String[] args){
int a =1;
print(a);
}
}
一楼提供的链接里有个回答可以借鉴,就是用两个函数来回调(那个是C语言里的实现),Java中,你可以用多线程来回沉默和唤醒,达到同样的目的。
int i =1;
public void run(){
System.out.println(i);
switch(i++){
case 1000: System.exit(0);
}
run();
}
public class Count {
int f(int i)
{
try{
int a[]=new int[1000];
a[i]=i+1;
System.out.println(a[i]);
return f(i-1);
}
catch(Exception e)
{return 0;}
}
public static void main(String[] args)
{ Count count=new Count();
count.f(999);
}
}
public void run(){
System.out.println(i);
switch(i++){
case 1000: System.exit(0);
}
run();
}
这个够绝!
#define A(x) x;x;x;x;x;x;x;x;x;x;
int main (void){
int n = 1;
A(A(A(printf ("%d ", n++))));
return 0;
}