想学习OP计算分数的方法(100分)

  • 主题发起人 主题发起人 yingyigui
  • 开始时间 开始时间
Y

yingyigui

Unregistered / Unconfirmed
GUEST, unregistred user!
想学习OP计算分数的方法[?],就算下面的例子吧:
有一个六位数前三个是奇数,后三个是偶数,把后半部分移到前面,该数是原数五倍半,原数是_____[:D]
 
op?what means?
 
以下代码不知是否符合你的要求:
procedure TForm1.Button1Click(Sender: TObject);
function MakeNum(DigSList:TStringList):Integer;
var i:integer;
s:string;
begin
s:='';
for i:=0 to DigSList.Count-1 do
s:=s+DigSList.Strings;
Result:=strtoint(s);
end;
var
P1,P2,P:TStringList;
N1,N2,i,j,k,m,n,o:Integer;
begin
P1:=TStringList.Create;
P2:=TStringList.Create;
P:=TStringList.Create;
P1.CommaText:='1,3,5,7,9';
P2.CommaText:='0,2,4,6,8';
for i:=0 to P1.Count-1 do
for j:=0 to P1.Count-1 do
for k:=0 to P1.Count-1 do
for m:=1 to P2.Count-1 do
for n:=0 to P2.Count-1 do
for o:=0 to P2.Count-1 do
begin
P.Add(P1.Strings);P.Add(P1.Strings[j]);P.Add(P1.Strings[k]);
P.Add(P2.Strings[m]);P.Add(P2.Strings[n]);P.Add(P2.Strings[o]);
N1:=MakeNum(P);
N2:=strtoint(copy(inttostr(N1),4,6)+copy(inttostr(N1),1,3));
if N2=N1*5.5 then showmessage('这个数符合条件:'+inttostr(N1));
P.Clear;
end;
P1.Free;
P2.Free;
P.Free;
end;
 
TO:Ben7980,
OP:=Object Pascal呵呵有点懒……[:D]

TO:fei_l
非常感谢,我还想问问,OP处理分数的时候有何技巧吗?我的算法不好,帮帮忙吧[:D]
 
在一般的程序设计问题上,我认为主要考虑两方面:
一、程序的运行效率
二、程序的可读性
在我,选二更重要。
而楼主问我程序的运行效率,不好意思,我是用差不多最笨的方法了,:D
 
客气了[:)],分是加定了[8D],咱们再等等有无其它解决方案……[^]
 
接受答案了.
 
后退
顶部