(۲۵ دى ۱۳۹۳ ۰۹:۱۹ ب.ظ)shayesteb نوشته شده توسط: سلام 
اول کد نوشته که p به خونه بعد از l اشاره میکنه پس p به المان اول اشاره میکنه و از المان اول تا ان پیش میریم که n بار تکرار میشه و دفعه بدی که جلقه اجرا میشه یه خونه میریم جلوتر یعنی از المان دوم تا ان پیش میریم که n-1 میشه و همینطوری ادامه پیدا میکنه تا وقتی که حلقه فقط یک بار اجرا بشه.
سلام
ببینید شما اصلا حلقه دوم رو نادیده گرفتید! در صورتی که اصل نکته تو حلقه دومه. شما تعداد دفعات اجرای حلقه اول رو حساب کردید. منم قبول دارم که حلقه اول
n(n1)2 بار اجرا میشه. اما سوال تعداد اجرا شدن writeln رو خواسته.
ببینید تو خط اول p یک واحد زیاد میشه و به المان اول اشاره می کنه. بعد میره تو حلقه while اول.
بعد تو خط سوم p رو میریزه تو q. یعنی الان هم p و هم q هر دو به المان اول اشاره میکنند. حالا q میره تو حلقه (خط چهارم) و نکته اصلی تو خط پنجمه. قبل از اینکه writeln اجرا بشه، دوباره q یک واحد زیاد میشه و میره رو المان بعد از المان اول (المان دوم) و بعد از این writeln اجرا میشه. یعنی writeln تو المان دوم شروع به اجرا شدن میکنه و تا المان آخر پیش میره که میشه n-1 بار . پس اولین بار writeln تعداد n-1 بار اجرا میشه و به همین ترتیب دفعات بعدی یکی کم میشه.
پس در کل writeln تعداد
n(n−1)2 بار اجرا میشه .
من وقت ندارم برنامه رو اجرا کنم اما مطمئنم که گزینه دوم درسته. اگه جای دو خط پنجم و ششم عوض بشه و خط پنجم بعد از خط ششم نوشته بشه، اون وقت گزینه اول میشه جواب.