首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

随机发生100000000个取值范围为[0,232-1]的数据,然后让用户输入一个数据,判断用户输入的数据是不是包含在前面随机产生的数据中

2012-08-13 
随机产生100000000个取值范围为[0,232-1]的数据,然后让用户输入一个数据,判断用户输入的数据是不是包含在

随机产生100000000个取值范围为[0,232-1]的数据,然后让用户输入一个数据,判断用户输入的数据是不是包含在前面随机产生的数据中。
求高手解答!

[解决办法]

C/C++ code
#include <stdio.h>int main(int argc, char *argv[]){    int i, d;    int r[232] = {0};    srand(time(0));    for (i = 0; i < 100000000; i++) {        r[rand()%232]++;    }    scanf("%d", &d);    if (d < 0 || d >= 232 || 0 == r[d]) {        printf("out!\n");    } else {        printf("bingo!");    }    return 0;}
[解决办法]
C/C++ code
#include <stdio.h>#include <stdlib.h>#include <time.h>unsigned long ulrand(void) {    return (     (((unsigned long)rand()<<24)&0xFF000000ul)    |(((unsigned long)rand()<<12)&0x00FFF000ul)    |(((unsigned long)rand()    )&0x00000FFFul));}int i;unsigned long ul;void main() {    srand(time(NULL));    for (i=0;i<10;i++) {        ul=ulrand();        printf("%010lu 0x%08x\n",ul,ul);    }}//2337588057 0x8b54c359//1977377429 0x75dc6295//3607316769 0xd7034921//0009828482 0x0095f882//3350859779 0xc7ba1003//0945794621 0x385fae3d//3400869024 0xcab524a0//3097846779 0xb8a563fb//4287421124 0xff8cdac4//3934016258 0xea7c5302 

热点排行