سلام به همه دوستان
الگوریتمی می خواستم که درآن از حلقه های تو در تو استفاده شده باشد
دلیل آن ذکر شده باشد
با تشکر از همه
به عنوان یک مثال ساده مجموع ارقام درایه های یک ماتریس (آرایه دو بعدی) را در نظر بگیرید.
هر درایه دو مولفه x و y (یا i و j) دارد که سطر و ستون آنرا مشخص می کنند. فرض کنیم که
ابعاد ماتریس n در n باشد، مثلا 10 در 10. برای آنکه بتوانیم کدی بنویسیم که تمامی درایه های این
ماتریس را جمع بزند بایستی از حلقه هایی استفاده کنیم که مقدار x و y را مشخص کند.
طبیعتا به دو حلقه نیاز داریم، یکی برای x و یکی برای y :
اگر ابعاد ماتریس ما 10 در 10 باشد بایستی 100 درایه را جمع بزنیم، پس بایستی این دو حلقه تو در تو
باشند، چون اگر تو در تو نباشند، اولی 10 بار اجرا می شود و سپس دومی هم 10 بار و در مجموع فقط 20 بار.
اما اگر تو در تو باشند هر بار که حلقه اول اجرا می شود، حلقه داخلش اش 10 بار اجرا می گردد، یعنی در مجموع
10 * 10 بار، که همان 100 بار مورد نظر ما است.
کد:
int x, y, sum = 0;
for (x = 0; x < 10; x++)
for (y = 0; y < 10; y++)
sum += A[x][y];