مشاهده نسخه کامل
: برنامه ژوزف می خوام لطفا
mahnaz2007
24-05-2007, 09:17
اعداد را در ارایه گرفته عدد اول را حذف کرده وبه ترتیب یکی درمیان حذف کند تا فقط یک عدد باقی بماند
hamidreza_buddy
24-05-2007, 21:05
یکم میشه بیشتر راجع به این الگوریتم ژوزف توضیح بدی؟
منظورتان همان مسئله معروف ژوزفوس است؟اگر حدس من دست باشد و اين همان مسئله باشد پس شما صورت مسئله را اشتباه نوشتيد
سلام مهناز خانم اگه کد به هم ریخته شده فقط کافیه کپی کنی و توی notpad پیست کنی مشکلش حل میشه
#include <iostream.h>
clrscr();
class Node {
int id;
Node *next;
Node (int i, Node *n=0): id(i), next(n) { }
friend class List;
};
class List {
Node *last;
public:
List ( ): last(0) { }
void addNode (int i);
void skipAndRemove (int delta);
void print ( );
};
void List::addNode (int i) {
if (!last) {
last=new Node(i);
last->next=last;
}
else {
Node *temp=new Node(i, last->next);
last->next=temp;
last=temp;
}
}
void List::skipAndRemove (int delta) {
if (delta>1) {
last=last->next;
skipAndRemove(delta-1);
}
else if (last->next==last) {
cout << last->id << ':' << endl;
delete last;
last=0;
}
else {
cout << last->next->id << ':' << endl;
Node *temp=last->next;
last->next=last->next->next;
delete temp;
}
}
void List::print ( ) {
if (!last) return;
for (Node *temp=last->next; ; temp=temp->next) {
cout << '\t' << temp->id;
if (temp==last) break;
}
cout << endl;
}
void main ( ) {
const int size=9, delta=5;
List list;
for (int j=1; j<=size; j++)
list.addNode(j);
list.print( );
for (int k=1; k<=size; k++) {
list.skipAndRemove(delta);
list.print( );
}
}
اگه کار کرد فقط یه چیز ازت می خوام یه مشکل بزرگ تو زندگیم دارم دعام کن همین.یا علی
amirmahmudi
29-11-2012, 23:30
اعداد را در ارایه گرفته عدد اول را حذف کرده وبه ترتیب یکی درمیان حذف کند تا فقط یک عدد باقی بماند
سلام من برنامشو میخوام
Saeed069
23-04-2018, 01:49
دوستان میشه یکی لطف کنه برنامه ژوزف رو به زبان ++C توی انجمن قرار بده؟
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.