2016-04-11 64 views
0

Autohotkey'de ardışık sayıda tek sayı (13-1001) eklemeye çalışıyorum.autohotkey: Ardışık aralık aralığı ekle

Bu sorunu içerecek bir formül var mı?

Bu

ben ne var:

a:=13 
b:=1001 
s1:=((b+1)/2)**2 
s2:=((a-1)/2)**2 
s:=s1-s2 
S3:=z+s 
Msgbox, 
( 
Step 6 Results: 
Z is %z% 
First # is %a% 
Last # is %b% 
Sum of consecutive odd numbers (13-1001) is %s% 
Z+Sum is %s3% 
+0

'z' nereden geldi ve bu formül Autohotkey ile ne ilgisi var? – 2501

+0

Autohotkey hakkında daha fazla bilgi edinmeme yardımcı olacak bir dizi soruya cevap veriyorum. Asıl soru şuydu: "13-1001 (dahil) ile Z arasındaki tüm tek sayıları ekle" Z önceki bir sorudan geldi. Z = 3 – Fafth

+0

Örneğinizde çalışırken ne gibi sorunlarla karşılaştınız? Gösterilen kod problemle nasıl bağlantılı? Lütfen detaylandırın. – 2501

cevap

0
İleri

Bu mantık aşağıdaki varsayılmaktadır:

  • Start az End İkisi Start
  • ve End tek sayılar
  • olmasıdır

Ham Örnek

Start := 13 
, End := 1001 

, SumOfOddNumbers := (((End + 1)^2)/4) - ((Start - 1)^2)/4)) 

MsgBox, % "Sum of all odd numbers from " . Start . " to " . End . " is " . SumOfOddNumbers 

Çıkış fonksiyonu olarak

Sum of all odd numbers from 13 to 1001 is 250965 

funSumOfOddNumbers(Start, End) { 
    Temp := (((End + 1)^2)/4) - ((Start - 1)^2)/4)) 
    return, % Temp 
    } ; end function funSumOfOddNumbers 

MsgBox, % "Sum of all odd numbers from 49 to 4009 is " . funSumOfOddNumbers(49, 4009) 

çıkış

Sum of all odd numbers from 49 to 4009 is 4019449