Mundarija:
- Ta'minotlar
- 1 -qadam: Asosiy usulni o'rnating
- 2 -qadam: Rekursiv usul sarlavhasini yarating
- 3 -qadam: Kicker/tayanch qutisini yarating
- 4 -qadam: Rekursiv qadam
- 5 -qadam: Muammoni qisqartiring
- 6 -qadam: Butun sonlar massivini yarating
- 7 -qadam: Usulni massivlaringiz bilan chaqiring
- 8 -qadam: natijalarni chop eting
- 9 -qadam: Tabriklaymiz
Video: Java -dagi massivni takroriy yig'ish: 9 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:24
Rekursiya - juda kam kod bilan muammoni tezda hal qila oladigan juda foydali va vaqtni tejaydigan protsedura. Rekursiya siz yaratgan usulni o'z ichiga oladi, bu asl muammoni qisqartiradi.
Bu misol uchun biz 10 ta butun sonli massivni yig'amiz, lekin hajmi har qanday uzunlikda bo'lishi mumkin.
Ta'minotlar
Siz java -ning asosiy sintaksisini bilishingiz va bu vazifani bajarish uchun kodingizni yozish uchun IDE yoki matn muharririga ega bo'lishingiz kerak.
1 -qadam: Asosiy usulni o'rnating
Boshlash uchun asosiy usulingizni yangi yaratilgan sinfga o'rnating. Men o'z sinfimni RecursiveSum deb nomladim. Bu erda siz butun sonlar qatorini yaratasiz va o'z rekursiv usulingizni chaqirasiz.
2 -qadam: Rekursiv usul sarlavhasini yarating
Asosiy usuldan tashqarida, rekursiv usulingiz uchun usul sarlavhasini yarating.
Usul statikdir, chunki uni ishlatish uchun ob'ekt talab qilinmaydi.
Qaytish turi int, chunki biz foydalanadigan qator butun sonlarga to'la bo'ladi. Biroq, bu qatorni o'z ichiga olgan har qanday raqam turiga o'zgartirilishi mumkin.
Men o'z usulimni recursiveSum deb nomladim, u ikkita parametrni oladi; butun sonlar qatori va biz qo'shadigan indeks. Men bu parametrlarni mos ravishda raqamlar va indeks deb atadim.
Siz hozir xatolarni ko'rasiz va bu yaxshi. Ular keyinroq tuzatiladi.
3 -qadam: Kicker/tayanch qutisini yarating
Rekursiv usulga kicker/base case kerak. Bu sizning usulingizni cheksiz o'zini chaqirishni to'xtatadigan shart. Bu asosiy holatni biz duch keladigan eng oddiy holat deb hisoblash mumkin. Bunday holda, asosiy holat bizning qatorimiz oxirida bo'ladi. Agar joriy indeks qator uzunligiga teng bo'lsa (minus 1, chunki massivlar 0 dan emas, balki 0 dan hisoblashni boshlaydi), biz oxiridamiz va biz bu elementni o'sha indeksga qaytaramiz.
4 -qadam: Rekursiv qadam
Bizda asosiy holat bo'lsa, keyingi qadam - bu bizning rekursiv qadamimiz. Bu erda sehr paydo bo'ladi. Bizning indeksimiz qatorimizdagi oxirgi elementga teng bo'lgan holatni ko'rib chiqdik. Agar biz qatorimizning oxirgi elementida bo'lmasak nima bo'ladi? Agar biz unga hozirgi elementimizni va keyingi elementimizni qo'shishni aytsak nima bo'ladi? Oxir -oqibat, biz qatorning oxiriga etib boramiz va bizning asosiy holatimiz ta'sir qiladi.
Buni amalga oshirish uchun biz hozirgi indeksni qaytaramiz va qatorning "qolgan qismini qo'shamiz".
5 -qadam: Muammoni qisqartiring
Qanday qilib biz "qolganini qo'shamiz"? Bizda ma'lum bir elementni qo'shadigan usul mavjud; bizning recursiveSum () usuli! Biz uni yana chaqira olamiz, lekin qaysi indeksni yig'amiz.
Biz ishlov berayotgan qatorni o'tkazamiz, lekin biz joriy indeksdan keyingi indeksni o'tkazamiz. Biz buni joriy indeksimizga ko'rsatilgandek qo'shish orqali qilamiz.
6 -qadam: Butun sonlar massivini yarating
Endi bizning rekursiv yig'ish usuli tugallangach, biz ishlov beradigan qatorni yaratishimiz mumkin. Bu qator bizning asosiy usul blokimizda bo'ladi.
Siz xohlagancha massiv hajmini yasashingiz mumkin. Men har xil o'lcham va qiymatlarga ega bo'lgan bir nechta massivlarni yaratdim, ular bitta o'lchamda emas.
7 -qadam: Usulni massivlaringiz bilan chaqiring
Endi siz o'z rekursiv usulingizga qo'ng'iroq qilishingiz va unga bu massivlarni o'tkazishingiz mumkin. Endi siz dasturni ishga tushirishingiz mumkin.
8 -qadam: natijalarni chop eting
Hech narsa bo'lmadi. Nima uchun? Rekursiv summa butun sonni qaytaradi, lekin biz bu tamsayı bilan hech narsa qilmaganmiz. Bu o'z vazifasini bajardi, lekin natijasini ko'ra olmayapmiz. Natijani ko'rish uchun biz shunchaki shunday chop etamiz. Buni ishga tushirgandan so'ng, siz har bir massiv uchun natijalarni ko'rishingiz kerak.
9 -qadam: Tabriklaymiz
Siz rekursiv funktsiyani bajardingiz. O'zingizning massivlaringiz hajmini o'zgartirishingiz mumkin. Agar siz uni sinab ko'rsangiz, bo'sh massiv bo'lsa, u qulab tushishini ko'rasiz. Biz buni hisobga olmadik, lekin bu sizning rekursiv usulingizni yaxshilashning ajoyib usuli.
Tavsiya:
[2021] Valenta Off-Roader uchun qo'llanma yig'ish: 23 qadam
[2021] Valenta Off-Roader uchun yig'ish qo'llanmasi: Valenta Off-RoaderValenta Off-Roader-bu mikro: bitli Off-Road RC avtomobili. Bu Lego Technic bilan mos keladi va orqa g'ildiraklardagi ikkita (x2) mikro tishli dvigatellar va Roberval muvozanat mexanizmiga asoslangan (x1) o'rnatilgan boshqaruv servo bilan jihozlangan
Mening lazer bilan kesilgan Ray-Gun yig'ish yo'riqnomam: 10 qadam
Mening lazer bilan kesilgan Ray-Gun yig'ish bo'yicha yo'riqnomam: Kechiktirganim uchun uzr so'rayman, mana menda lazer ko'rsatgichi Ray-Gunni yig'ish bo'yicha uzoq vaqtdan buyon ko'rsatma berilgan, siz vektor chizish rejalarini sotib olishingiz mumkin … CNC-da Lazer-kesuvchi! Https: //cults3d.com/en/3d-model/gadget/ray-gun mana shunday
AM radio qabul qilish to'plamini yig'ish: 9 qadam (rasmlar bilan)
AM radio qabul qiluvchilar to'plamini yig'ish: Men har xil elektron to'plamlarni yig'ishni yaxshi ko'raman. Men radiolarga qoyil qolaman. Bir necha oy oldin men Internetda arzon AM radio qabul qilgichini topdim. Men buyurtma berdim va standart kutishdan taxminan bir oy o'tgach, u keldi. To'plam DIY ettita tranzistorli superheter
Ish stolini qanday yig'ish kerak: 12 qadam
Ish stolini qanday yig'ish kerak: bu ko'rsatmada siz asosiy ish stoli kompyuterini qanday yig'ishni o'rganasiz. Bu kompyuter juda oddiy va oxirgi kompyuter emas. Kompyuterni qayta yig'ish uchun ikki -uch soatdan oshmasligi kerak
Arduino Uno yordamida LED matritsali massivni boshqarish (Arduino bilan ishlaydigan robotli yuz): 4 qadam (rasmlar bilan)
Arduino Uno (Arduino Powered Robot Face) yordamida LED matritsali massivni boshqarish: Bu ko'rsatma Arduino Uno yordamida 8x8 LED matritsalar qatorini qanday boshqarishni ko'rsatadi. Ushbu qo'llanma o'z loyihalaringiz uchun oddiy (va nisbatan arzon displey) yaratish uchun ishlatilishi mumkin. Shu tarzda siz harflar, raqamlar yoki maxsus animatsiyalarni ko'rsatishingiz mumkin