範例-控制檯-連續正整數改進版

對範例庫中控制檯下的連續正整數做了改進,大家可以一試。

原版:

io.open(); 
str = /*連續正整數
一個正整數有可能可以被表示爲n(n>=2)個連續正整數之和,如:
15=1+2+3+4+5
15=4+5+6
15=7+8
 
請編寫程序,根據輸入的任何一個正整數,找出符合這種要求的所有連續正整數序列
*/
 
io.print(str);
  
var n;
do{
    io.print(
'請輸入一個非零整數');
    n = 
tonumber( io.stdin.read() );
}
while( !n  ) 

io.print(
''
for i=1;n/2+1;1 {
    
var k = 0;
    
var j2 =0;
    
for j =i;n/2+1;1 {

        k = k + j;
        j2=j;
        
if(k == n){  break };
    }; 
     
    
if(k==n){
        
var out = n+' = '+i;
        
for y=i+1;j2;1 {

            out = out+
' + '+y
        };
        io.print(out);
    };
};

execute("pause"//按任意鍵繼續
io.close()

改進版:

io.open();   
var A;
do{
    
execute("cls")
    io.print(
'請輸入一個非零整數');
    A = 
tonumber( io.stdin.read() );
}
while( A<=0 || A!=math.floor(A)  ) 

for m=2;math.sqrt(2*A) {
    
var n=(A-m*(m+1)/2)/m
    
if n>=0 && n==math.floor(n){
        
var out = A+'='+(n+1);
        
for i=2;m
            out=out+
'+'+(n+i)
        io.print(out)
    }
}
execute("pause")
io.close()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章