求解一道程序题!!

来源:百度知道 编辑:UC知道 时间:2024/06/07 01:02:12
在网上看到一个题目:用C/C++输出1到10000的整数,不使用循环和if。
感觉无从下手,是不是忽悠人的··求高手指点
用递归试了下
#include<stdio.h>
#include<math.h>
#include "stdio.h"
int f(int n)
{
int i=0;
if (n==1)
i=1;
else
i=f(n-1)+1;
printf("%d\t",i) ;
return i;
}
main()
{ int n=10000;
printf("%d\t",f(n-1)+1);
getchar();
}
可是还是用到了if··

递归

C++我不会 我用java写吧,但是思路你可以借鉴,伪代码:
Integer i = 0;
Thread t1 = new Thread(){public void run(){
while(!this.interrupted()){
sychronized(i){
i++;
i.notifyAll();
i.wait();
}
}
}};
Thread t2 = new Thread(){public void run(){
while(!this.interrupted()){
sychronized(i){
i++;
i.notifyAll();
i.wait();
}
}
}};

这个代码不能运行的,就是交流一下思路,开两个线程,每次执行一个线程就将i自加一,然后挂起,释放对象锁,再让另一个抢占i,再加一,这样不用循环也能让两个线程交替把i加到很大,但是不用if的话 我就不知道程序出口在哪了 你可以再想想

#include <stdio.h>
#include <stdlib.h>
void main()
{
int n=1;

loop: n++;
{
printf("%d\n",n);

switch(n)
{
case 10000 : exit(0);
}

goto loop;
}

}

因为数据太多 运行的结果显示不完全

可以啊!没忽悠人,但也忽悠人了
int 1
print 1
1个1个来。。。不用循环这题做什么。。。