PDA

View Full Version : تشخیص بیشترین تکرار 1 عدد در بین 10 عدد



digiage
پنج شنبه 19 آبان 1390, 23:30 عصر
سلام من چطور میتونم تشخیص بدم که بعد از گرفتن 10 عدد از کاربر کدوم عدد بیشترین تکرار داشته؟

Farzandekurosh
جمعه 20 آبان 1390, 00:16 صبح
سلا یه همچین چیری جواب میده ولی بهینه نیست شبه کد نوشتم به راحتی میتونی تبدیلش کنی.
لیست رو دریافت میکنه ، برای هر عددی از خود عدد تا آخر لیست چک میکنه اگه مساوی بود currentCount
رو افزایش میده وقی به ته لیست رسید با lastCount که تعداد تکرار عدد قبلی است مقایسه میشه
اگه بیشتر بود ریپلیسش میکنه (تعداد تکرار عدد قبل از اولین خونه صفره) و اندیس این عدد که دارای تکرار بیشتری
نسبت به عدد قبلی بوده رو تو imaxRepeat ذخیره میکنه . این ساده ترین الگوریتمیه که میشه پیادش کرد اگه توضیح
لازمه بگو



int arr[10];
int n;
input arr; //in a loop
input n;

int lastCount=0,imaxRepeat=0,currentCount=0;
for (int i=0;i<10;i++)
{
for (int j=i;j<10;j++)
{
if ( arr[i] == arr[j] )
currentCount++;
}
if (currentCount > lastCount)
{
imaxRepeat = i;
lastcount = currentCount;
}
currentCount = 0;
}
print "item arr[imaxRepeat] is repeat more than other items"

mohammadriano
جمعه 20 آبان 1390, 00:38 صبح
سلام
مشکل این قدرها هم هاد نیست
سوال Cpp هست
int b[10]; /o
int m=2,h,f; /o
for(int i = 1 ;i<=10;i++) /o
cin>>b[i] /o
for(int j =1;j<=10;j++){/o
f =b[j]; /o
for(int o=1;o<=10;o++){ /o
if(b[o] = f) /o
h++; /o
if (h >m) /o
m =j; /o
{
{
cout<<b[m]<<"The maximum number of iterations has" /o
موفق باشی

Farzandekurosh
جمعه 20 آبان 1390, 01:48 صبح
در کل فرقی نمیکنن imaxRepeat = i; ==== m =j;
ولی if دومی رو باید بیرون از حلقه داخلی بذاری هم بیخودی چک میکنه هم فهمش سخت تر میشه واسه کسی که واسه اولین بارش همچین برنامه ای میبینه
cpp یا هر زبان دیگه ای بدون الگوریتم معنی ندارن . چرا یادگیری برنامه نویسی رو با الگوریتم یاد نگیریم ؟؟؟
وقتی ندونی میخوای چیکار کنی و استراتژیت رو رو کاغذ ننویسی حتی یک خط کد نوشتن هم بی فایده ست چه برای مساله های بسیار پیچیده چه این مساله ساده !
اگه اینطوری میذاشتیش بهتر بود :


int b[10];

int m=2,h,f;

for(int i = 1 ;i<=10;i++)
cin>>b[i]

for(int j =1;j<=10;j++)
{
f = b[j];
for(int o=1;o<=10;o++)
{
if(b[o] == f)
h++;
if (h > m)
m =j;
}
}
cout<<b[m]<<"The maximum number of iterations has"