2014-01-05 3 views
0
function AddNumStrings (Str1, Str2 : string): string; 
var 
    i : integer; 
    carryStr : string; 
    worker : integer; 
    workerStr,s : string; 

    begin 
    Result := inttostr (length(Str1)); 
    Result := ''; 
    carryStr := '0'; 

    // make numbers the same length 
s:=StringofChar('0',Length(Str1)-1); 
Str2:=s+Str2; 

    i := 0; 
    while i < length(Str1) do 
    begin 
    worker := strtoint(copy(Str1, length(str1)-i, 1)) + 
       strtoint(copy(Str2, length(str2)-i, 1)) + 
       strtoint (carryStr); 
    if worker > 9 then 
    begin 
     workerStr := inttostr(worker); 
     carryStr := copy(workerStr, 1, 1); 
     result := copy(workerStr, 2, 1) + result; 
    end 
    else 
    begin 
     result := inttostr(worker) + result; 
     carryStr := '0'; 
    end; 


    inc(i); 
    end; { while } 
    if carryStr <> '0' then 
    result := carryStr + result; 
end; 

procedure TForm1.Button1Click(Sender: TObject); 
var 
s,z:String; 
begin 
s:='1000'; 
repeat 
s:=AddNumStrings(s,'1'); 

until 
Length(s)=1000; 


ShowMessage(s); 
end; 

end. 

Но эти коды занимают слишком много времени. Есть ли какие-либо варианты быстрого доступа к моим кодам? Я работаю огромным числом, поэтому мне нужно написать процедуру «Inc()» вручную для огромного количества миллиардов цифр. Я знаю, что вы думаете об этом, я должен это сделать. Спасибо ..Delphi fast плюс большое целое число?

+0

Пожалуйста, объясните, что именно вы пытаетесь достичь Вот. –

+0

Я работаю вокруг огромного числа фибоначчи и простого числа. –

+0

Google для «большой целой библиотеки delphi» или аналогичной - я почти уверен, что это было сделано раньше. –

ответ

Смежные вопросы