कुछ नया होने के नाते, मैं बैच स्क्रिप्ट (https://projecteuler.net/problem=5) के साथ प्रोजेक्ट यूलर समस्या 5 को पूरा करने की कोशिश कर रहा हूं। तथापि; मैंने कुछ समस्याओं में भाग लिया है। अगर कोई मेरे कोड पर जा सकता है, तो यह बहुत अच्छा होगा।एक बैच स्क्रिप्ट के भीतर मॉड्यूलस अंकगणित प्रदर्शन
@ECHO off
SET init=1
SET iter=1
SET /a func=%init% %% %iter%
cls
:Num
IF func==0 (
IF iter==20 (
ECHO Val = %init%
pause
exit
) ELSE (
SET /a iter+=1
GOTO Num
)
) ELSE (
SET iter=1
SET /a init+=1
GOTO Num
)
क्या यह जाँच कर रहा है init mod iter
रिटर्न एक 0 है, और अगर यह होता है, iter
मूल्य में 1 जोड़ देते, जब तक यह 21. हालांकि तक पहुँच जाता है कि क्या करना चाहिए है; यदि यह 0 के बराबर नहीं है, तो पुनरावृत्ति गणना 0 पर वापस सेट की जाएगी और फिर से गणना शुरू कर देगी।
क्या होने का मतलब है का एक उदाहरण:
1 mod 1 = 0, Therefor add 1 to iter
1 mod 2 != 0, Therefor init is set to 0 and 1 is added to init
2 mod 1 = 0, Therefor add 1 to iter
2 mod 2 = 0, Therefor add 1 to iter
2 mod 3 != 0, Therefor init is set to 0 and 1 is added to init
और इसी तरह और बहुत आगे है।
क्या होता है का एक उदाहरण:
1 mod 1 != 0, Therefor add 1 to init
2 mod 1 != 0, Therefor add 1 to init
3 mod 1 != 0, Therefor add 1 to init
और इसी तरह और बहुत आगे है।
किसी भी मदद की सराहना की जाती है, धन्यवाद।
मैंने कोड में कुछ बदलाव किए हैं, हालांकि; अब यह पूरी तरह से मॉड्यूलस अंकगणित छोड़ देता है और कहता है कि 1 mod 1 से 20 = 0. विचार यह क्यों करता है? ' सेट init = 1 सेट आईटीईआर = 1 सेट/बंद @ECHO एक समारोह ="% init% %%% आईटीईआर% " cls : Num यदि"% समारोह% "==" 0 "( \t यदि"% आईटीईआर% "==" 21 "( \t \t गूंज। \t \t ECHO वैल =% init% \t \t गूंज। \t \t प्रेस से बाहर निकलने के लिए कोई कुंजी गूंज।।। \t \t पी ause> nul \t \t बाहर निकलने \t) और ( \t \t गूंज% init% आधुनिक% आईटीईआर% = 0; CONT \t \t सेट/एक आईटीईआर + = 1 \t \t गोटो अंक \t) ) और ( गूंज% init% आधुनिक% आईटीईआर%!= 0; BREAK \t सेट आईटीईआर = 1 \t सेट/एक init + = 1 \t गोटो अंक ) ' बदसूरत प्रारूपण के लिए क्षमा करें। – Sennsei
आपने कभी '% func%' का पुनर्मूल्यांकन नहीं किया है। – SomethingDark
मैं इसे कैसे शामिल करूं? – Sennsei