如何讓電腦較爲快的,不重複的猜到1-100直接的一個隨機數。 io
以c語言爲例,例如在猜1-100的數字時,假如,隨機產生一個數字number=rand()%100+1,那麼若是隨機猜的第一個數字大於了number,咱們就把這個數存到end裏面,若是隨機猜的第二個數字小於了number,咱們就把這個數字存到first裏面,那麼問題就是接下來產生的隨機數要在介於first和end之間的一個隨機數,則,用rand()%(end-first)+first能夠獲得這個隨機數。 隨機數
如下爲示例代碼:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int func(int first,int end)
{
return rand()%(end-first) +first+1;
}
int main(void)
{
srand(time(NULL));
int num_1=rand()%100+1;
//int num_2;
int count=0;
int first=0;
int end=100;
printf("須要猜的數字爲:%d\n",num_1);
while(1)
{
printf("請你猜一個數:\n");
int num_2=func(first,end);
printf("%d",num_2);
if(num_2>num_1)
{
printf("你輸入的數大了!\n");
end=num_2;
count++;
}
else if(num_2<num_1)
{
printf("你輸入的數小了!\n");
first=num_2;
count++;
}
else
{
printf("恭喜你答對了哦!\n");break;
}
}
printf("你一共用了%d次哦",count);
return 0;
} im