PDA

View Full Version : حدس عدد



تریگر دایتل و دایتل
چهارشنبه 28 فروردین 1387, 18:40 عصر
می خواهم برنامه ای بنویسم که از کاربر بخواهد عددی بین 1 تا 100 در نظر بگیرد و برنامه با کمترین سوال ممکن از کاربر ،عدد مورد نظر را حدس بزند.اما در نوشتن آن مشکل دارم.

تریگر دایتل و دایتل
چهارشنبه 28 فروردین 1387, 18:53 عصر
می خواهم برنامه ای بنویسم که از کاربر بخواهد عددی بین 1 تا 100 در نظر بگیرد و برنامه با کمترین سوال ممکن از کاربر ،عدد مورد نظر را حدس بزند.اما در نوشتن آن مشکل دارم.
:گریه:جواب منو بدین لطفا،لازمش دارم.

MRHagh
چهارشنبه 28 فروردین 1387, 19:48 عصر
من 4 سال پیش این برنامه رو با Binery Search نوشتم , اگه فرض کنیم تا حالا علم پیشرفت نکرده باشه , سریعترین راهش همینه !!!

#include <iostream>
#include <conio.h>
using namespace std;
void sumrise();
void main()
{
cout<<"Suppose a number (between 1 to 100) and press \"Enter\" ...";
getch();
cout<<"\nimagine ...\n\n";
sumrise();
getch();
}
void sumrise()
{
char guidance='0';
int down=1, up=100, imagine, counter=0;
while(guidance!='=')
{
cout<<"\n"<<(imagine=(up+down)/2)<<" ";
guidance=getche();
switch (guidance)
{
case '<':
down=imagine;
break;
case '>':
up=imagine;
break;
case '=':
break;
default :
cout<<"You entered illegal caracter\nJust use :\n1. ' > ' when imagine is big"
"\n2. ' < ' when imagine is small \n3. ' = ' when imagine is equal\n";
}
cout<<" your number";
counter++;
}
cout<<"\n\nYour number : "<<imagine<<"\nimagine Number : "<<counter;
}

فکر کنم مشکلت کاملا حل شد ...

تریگر دایتل و دایتل
چهارشنبه 04 اردیبهشت 1387, 18:51 عصر
من 4 سال پیش این برنامه رو با Binery Search نوشتم , اگه فرض کنیم تا حالا علم پیشرفت نکرده باشه , سریعترین راهش همینه !!!

#include <iostream>
#include <conio.h>
using namespace std;
void sumrise();
void main()
{
cout<<"Suppose a number (between 1 to 100) and press \"Enter\" ...";
getch();
cout<<"\nimagine ...\n\n";
sumrise();
getch();
}
void sumrise()
{
char guidance='0';
int down=1, up=100, imagine, counter=0;
while(guidance!='=')
{
cout<<"\n"<<(imagine=(up+down)/2)<<" ";
guidance=getche();
switch (guidance)
{
case '<':
down=imagine;
break;
case '>':
up=imagine;
break;
case '=':
break;
default :
cout<<"You entered illegal caracter\nJust use :\n1. ' > ' when imagine is big"
"\n2. ' < ' when imagine is small \n3. ' = ' when imagine is equal\n";
}
cout<<" your number";
counter++;
}
cout<<"\n\nYour number : "<<imagine<<"\nimagine Number : "<<counter;
}

فکر کنم مشکلت کاملا حل شد ...
از توجه شما ممنونم:خجالت:
اما من نتونستم برنامه ی شما رو اجرا کنم؛یعنی نتونستم eror برنامه را رفع کنم.
خودم با دستورif تونستم برنامه روبنویسم ،باز هم ازشما ممنونم.:تشویق:

yunatan
پنج شنبه 05 اردیبهشت 1387, 19:51 عصر
سلام من می خواستم که برنامه ای بنویسم که ب م م دو عدد را حسهب کند ولی مشکل دارم لتفا جواب منو بدید ممنون