الفريق العربي للبرمجةأرشيف المنتديات · 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

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

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