الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

شباب اريد رأيكم

مغلق
بدأه Super_emad55 في 2 ديسمبر 2006 · 3 رد · 483 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم, لثقتي بهذ المنتدى, اطلب الرأيكم

تم اخذ رأيي بمسأله في ال recursion , كان سؤال بسيط. و هو كيف يمكن كتابت palindrome function بال recursion اذا كتبت ال min بهذا الشكل:

void main()
{
	char a[]="radar";
	char * first,*last;
	first=&a[0];
	last=&a[4];
	if(pal(a,first,last))cout<<"yes"<<endl;
	else cout<<"no"<<endl;
}

كان ردي بهذا الشكل :

bool pal(char *a,char *first,char *last)
{
	if(first==last)return true;
	else if(first>last)return true;
	else if(*first!=*last)return false;
	else return pal(a,first+1,last-1);
}

و عرض هذا الكلام على دكتور في الجامعه, و قال انا ما كتبت صحيح الا انه هناك خطأ في سطر معين

bool pal(char *a,char *first,char *last)
{
	if(first==last)return true;
	else if(first>last)return true;// this should be return false
	else if(*first!=*last)return false;
	else return pal(a,first+1,last-1);
}

و تم صحيح السؤال على هذا النحو, مما اثار غضبي, فأرجو ان تحكموا بيننا.

جزاكم الله كل خير

ENG. IMAD, Programing is a way of life, It's in the air, we breath It's pumps through our veines, Without it, we soon crumble to dust

#2

هل مسألة الحكم صعبه !!!؟؟؟

ENG. IMAD, Programing is a way of life, It's in the air, we breath It's pumps through our veines, Without it, we soon crumble to dust

#3

السلام عليكم

مش فاهم بصراحة.. نت و الدكتورمختلفين! مش فيه debug و test case

على العموم هذا الشرط المشار اليه يتحقق فقط اذا كان عدد الحروف زوجى و الكلمة مماثلة.

و اعتقد ان الحل الى فيه return true

هو الصح.

ببرنامج صغير نراجع الحلين فى حالات:

1- عدد حروف فردى و متماثلة.

2- عدد حروف فردى و غير متماثلة.

3- عدد حروف زوجى و متماثلة.

4- عدد حروف زوجى وغير متماثلة فى اى مكان عدا حرفى الوسط.

5- عدد حروف زوجى وغير متماثلة فى حرفى الوسط.

جرب الحالات الموجودة فى المقدمة و ... لا تعليق

#include <string.h> 
#include <iostream.h>
bool pal1(char *a,char *first,char *last);
bool pal2(char *a,char *first,char *last);

void main()
{
	char a[]="rsddsr";
	//char a[]="rskdsr";
	//char a[]="rakksr";
	//char a[]="radar";
	//char a[]="rsdar";

	char * first,*last;
	first=&a[0];
	last=&a[strlen(a)-1];
// Sol 1
	cout<<"Solution 1:\t";
	if(pal1(a,first,last))
		cout<<"yes"<<endl;
	else
		cout<<"no"<<endl;
// Sol 2
	cout<<"Solution 2:\t";
	if(pal2(a,first,last))
		cout<<"yes"<<endl;
	else
		cout<<"no"<<endl;
}

bool pal1(char *a,char *first,char *last)
{
	if(first==last)
		return true;
	else
		if(first>last)
			return true;
		else 
			if(*first!=*last)
				return false;
			else 
				return pal1(a,first+1,last-1);
}

bool pal2(char *a,char *first,char *last)
{
	if(first==last)
		return true;
	else 
		if(first>last)
			return false;// this should be return false
		else
			if(*first!=*last)
				return false;
			else 
				return pal2(a,first+1,last-1);
}
#4

وصلت الفكرة, مشكور

ENG. IMAD, Programing is a way of life, It's in the air, we breath It's pumps through our veines, Without it, we soon crumble to dust

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر ساعة · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…