|
发表于 2004-8-3 22:48:25
|
显示全部楼层
这个程序主要的时间都耗在输出上了,几个程序都看不出来多少区别,如果要比较的话应该去掉输出。
- #include <stdio.h>
- #include <stdlib.h>
- #define COUNT 1000000
- int a[] = {0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4};
- int func(unsigned int);
- int
- main(void)
- {
- int i;
-
- for(i = 1; i < COUNT; i++){
- printf("%2d ", func(rand()));
- if(i % 20 == 19)
- printf("\n");
- }
- }
- int
- func(unsigned int num)
- {
- int c = 0;
-
- while(num){
- c += a[num & 0xf];
- num >>= 4;
- }
- return c;
- }
复制代码 |
|