Форум: "Основная";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];
Внизвот знаете что то при n = 31 не считает Найти похожие ветки
← →
KingDog (2005-02-10 10:37) [0](программа вычисляет степень числа 2)
для n = 1 до 30 работает замечательно а вот при n = 31
какой то гон отрицательное число получается
n := StrToInt(Edit1.Text);
Count := 1;
For n := 1 to n do
begin
For I := 1 to Count do
Count := Count + 1;
end;
Edit1.Text := IntToStr(Count);
если кто знаете напишите (да кстати данный код рабочий
все переменные типа integer :-) )
← →
mojerat (2005-02-10 10:39) [1]да код интерестный а ты уверен что он работает
← →
Плохиш © (2005-02-10 10:41) [2]Странно, всегда считал, что "степень числа 2" вычисляется перемножением двоек или смещением бита.
← →
Romkin © (2005-02-10 10:43) [3]Это ж надо так написать :))) Кстати, есть теги code, весьма рекомендую использовать, читать неудобно без них.
А ответ прост: это не гон! :) integer - целое со знаком 32 бита.
← →
Алхимик © (2005-02-10 11:53) [4]Из справки
Integer -2147483648..2147483647 signed 32-bit
← →
Sagov (2005-02-10 12:29) [5]procedure TForm1.Button1Click(Sender: TObject);
function sum(st1,st2:string):string;
var b,b2:byte;
i:integer;
label aa;
begin result:="";b:=0;
for i:=length(st1)to length(st2)-1 do st1:="0"+st1;
for i:=length(st2)to length(st1)-1 do st2:="0"+st2;
for i:=length(st1) downto 1 do begin
b2:=byte(st1[i])and $f+byte(st2[i])and $f+b;
if b2>9 then b:=1 else b:=0;
result:=char(b2-b*10+48)+result;
end;
if b=1 then result:="1"+result;
end;
var st,st2,st3:string;
i:integer;
begin
i:=strtoint(Edit1.Text);
st2:="1";
for i:=1 to i do st2:=sum(st2,st2);
edit1.Text:=st2;
end;
а вот такой код работает до 1000 а может и более.
не тестировал дальше.
← →
Shirson © (2005-02-10 12:50) [6]
For n := 1 to n do
Ляпота...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.041 c