xyjzsh

[算法题]输出从1到1000的数[转载]

有这样一个面试题——请把从1到1000的数打印出来,但你不能使用任何的循环语句或是条件语句。更不能写1000个printf或是cout用C/C++语言

个人比较赞赏的思路是下面两个:

1. 函数指针数组结合n/1000的结果作为数组的index。

 1void yesprint(int i);
 2void noprint(int i);
 3 
 4typedef void(*fnPtr)(int);
 5fnPtr dispatch[] = { yesprint, noprint };
 6 
 7void yesprint(int i) {
 8    printf("%d\n", i);
 9    dispatch[i / 1000](i + 1);
10}

11 
12void noprint(int i) /* do nothing. */ }
13 
14int main() {
15      yesprint(1);
16}

17

2. 构造函数结合静态变量结合数组。

 1 class Printer
 2 {
 3 public:
 4     Printer() { static unsigned i=1; cout << i++ << endl;; }
 5  
 6 };
 7  
 8 int main()
 9 {
10     Printer p[1000];
11 }
12 

posted on 2011-01-17 10:30 呆人 阅读(352) 评论(0)  编辑 收藏 引用 所属分类: 算法


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2013年2月>
272829303112
3456789
10111213141516
17181920212223
242526272812
3456789

导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜