Yeni bir şey olarak, bir toplu iş komut dosyasıyla (https://projecteuler.net/problem=5) Project Euler Problem 5'i tamamlamaya çalışıyorum. Ancak; Birkaç problemle karşılaştım. Kimse benim kodumdan geçerse, bu harika olur. o init mod iter
bir 0 döner ve bu olursa o Ancak 21. ulaşıncaya kadar, iter
değeri 1 eklemek olmadığını kontrol yapmak anlamına NelerBir Toplu Komut Dosyası İçinde Modül Aritmetiğini Gerçekleştirme
@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
)
; 0'a eşit değilse, yineleme sayısı tekrar 0'a ayarlanır ve tekrar hesaplamaya başlar.
gerçekleşmesi DEMEK ne bir örnek:
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
Ve benzeri ve benzeri.
OLUR ne bir örnek:
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
Ve benzeri ve benzeri.
Herhangi bir yardım için teşekkür ederiz, teşekkürler.
Kodda birkaç değişiklik yaptım; Şimdi modül aritmetiğini tamamen atlıyor ve 1 mod 1 - 20 = 0 olduğunu söylüyor. Neden bunun üzerine düşünceler? Num "% fonk%" EĞER == "0: ' Bir işlev = "% init% %%% iter%" cls = 1 SET iter = 1 SET/init SET kapalı @ECHO "( \t IF "% iter%" == "21"( \t \t yankı. \t \t eCHO Val =% init% \t \t yankı. \t \t basın çıkmak için herhangi bir tuşa yankı... \t \t p ause> nul \t \t çıkış \t) başka ( \t \t eko% init% mod% iter% = 0; CONT \t \t SET/a iter + = 1 \t \t GOTO Num \t) ) başka ( eko% init% mod% iter%!= 0; ARA \t SET iter = 1 \t SET/çirkin biçimlendirme için bir başlatma + = 1 \t GOTO Num ) ' yazık ki. – Sennsei
Hiçbir zaman '% func% 'değerini yeniden hesaplamazsınız. – SomethingDark
Bunu nasıl ekleyebilirim? – Sennsei