DELPHI,求偶数位的和的2倍,再加上奇数位的和的问题
怎么自定义函数:随机一组数,例如123456,用DELPHI求偶数位的和的2倍(5+3+1)*2,再加上奇数位的和(5+3+1)*2+2+4+6,用DELPHI怎么实现?...
怎么自定义函数:随机一组数,例如123456,用DELPHI求偶数位的和的2倍(5+3+1)*2,再加上奇数位的和(5+3+1)*2+2+4+6,
用DELPHI怎么实现?
取奇数位数字之和,取偶数位数字之和再乘以2,两者相加,得出一个数值 展开
用DELPHI怎么实现?
取奇数位数字之和,取偶数位数字之和再乘以2,两者相加,得出一个数值 展开
4个回答
展开全部
先加一个Edit之类的控件,用来输入要操作的数
然后添加一个按钮,在按钮的事件里写代码:
procedure TForm1.RzButton1Click(Sender: TObject);
var
StrOriginal:string;
StrJ,StrO:Integer;
StrAim:Integer;
Flag:Boolean;
I: Integer;
begin
flag:=True;
StrO:=0;
StrJ:=0;
StrOriginal:=StrOriginal+InputEdit.Text;
for I := 1 to Length(StrOriginal) do
begin
if Flag=True then
begin
StrJ:=StrJ+StrToInt(StrOriginal[I]);
Flag:=False;
end
else
begin
StrO:=StrO+StrToInt(StrOriginal[I]);
Flag:=True;
end;
end;
StrAim:=StrJ+StrO*2;
OutputEdit.Text:=IntToStr(StrAim);
end;
已经可以了~~~调试过了~~~肯定没有问题,关键是你要添加两个Edit控件,然后是什么名字你就把我的InputEdit和OutputEdit改过来,在按钮处双击鼠标左键就可以啦~~~
然后添加一个按钮,在按钮的事件里写代码:
procedure TForm1.RzButton1Click(Sender: TObject);
var
StrOriginal:string;
StrJ,StrO:Integer;
StrAim:Integer;
Flag:Boolean;
I: Integer;
begin
flag:=True;
StrO:=0;
StrJ:=0;
StrOriginal:=StrOriginal+InputEdit.Text;
for I := 1 to Length(StrOriginal) do
begin
if Flag=True then
begin
StrJ:=StrJ+StrToInt(StrOriginal[I]);
Flag:=False;
end
else
begin
StrO:=StrO+StrToInt(StrOriginal[I]);
Flag:=True;
end;
end;
StrAim:=StrJ+StrO*2;
OutputEdit.Text:=IntToStr(StrAim);
end;
已经可以了~~~调试过了~~~肯定没有问题,关键是你要添加两个Edit控件,然后是什么名字你就把我的InputEdit和OutputEdit改过来,在按钮处双击鼠标左键就可以啦~~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用前确保num为数字字符串。
function YourFunction(num:string):Integer ;
var
sum_1,sum_0:Integer;
strNum:string;
flag:Boolean;//是否为基数
begin
sum_0:=0;
sum_1:=0;
flag:=True;
while num<>'' do
begin
strNum:=Copy(num,0,1);
Delete(num,1,1);
if flag then
sum_1:=sum_1+strtoint(strNum)
else
sum_0:=sum_0+strtoint(strNum);
flag:=not flag;
end;
Result:=sum_1+2*sum_0;
end;
function YourFunction(num:string):Integer ;
var
sum_1,sum_0:Integer;
strNum:string;
flag:Boolean;//是否为基数
begin
sum_0:=0;
sum_1:=0;
flag:=True;
while num<>'' do
begin
strNum:=Copy(num,0,1);
Delete(num,1,1);
if flag then
sum_1:=sum_1+strtoint(strNum)
else
sum_0:=sum_0+strtoint(strNum);
flag:=not flag;
end;
Result:=sum_1+2*sum_0;
end;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
var
input:String;
rand,i,A,B,Res:Integer;
begin
rand:=Random(1000000000);
input:=intToStr(rand);
A:=0;B:=0;
for i:=1 to Length(input)-2 do
begin
if odd(i) then
A:=StrToInt(input[i])+A
else
B:=StrToInt(input[i])+B;
end;
A:=2*A;
Res:=A*B;
ShowMessage(IntToStr(A)+'*'+IntToStr(B)+'='+IntToStr(Res));
close;
end;
input:String;
rand,i,A,B,Res:Integer;
begin
rand:=Random(1000000000);
input:=intToStr(rand);
A:=0;B:=0;
for i:=1 to Length(input)-2 do
begin
if odd(i) then
A:=StrToInt(input[i])+A
else
B:=StrToInt(input[i])+B;
end;
A:=2*A;
Res:=A*B;
ShowMessage(IntToStr(A)+'*'+IntToStr(B)+'='+IntToStr(Res));
close;
end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询