首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >部分pascal函数

部分pascal函数
EN

Stack Overflow用户
提问于 2011-01-21 07:23:00
回答 5查看 301关注 0票数 0

我试图将 pascal 程序重写为PHP,但不明白pascal函数的这一部分是干什么的:

代码语言:javascript
复制
 while (u[3] <> 1) and (u[3]<>0) and (v[3]<>0)do
       begin
       q:=u[3] div v[3];
       for i:=1 to 3 do
           begin
           t:=u[i]-v[i]*q;
           u[i]:=v[i];
           v[i]:=t;
           {writeln('u',i,'=',u[i],'  v',i,'=',v[i]); }
           end;
       end;
       if u[1]<0 then u[1]:=n+u[1];
       rae:=u[1];

请帮助重写它到PHP。

谢谢。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-01-21 07:40:16

代码语言:javascript
复制
while ($u[3] != 1) && ($u[3] != 0) && ($v[3] != 0) {
  $q = floor($u[3] / $v[3]);
  for ($i = 1; $i <= 3; $i++) {
    $t = $u[$i] - $v[$i] * $q;
    $u[$i] = $v[$i];
    $v[$i] = $t;
    echo "u$i={$u[$i]} v$i={$v[$i]}\n";
  }
}

if ($u[1] < 0) {
  $u[1] = $n + $u[1];
}

$rae = $u[1];
票数 3
EN

Stack Overflow用户

发布于 2011-01-21 07:34:45

这段代码的非常直译应该是这样的:

代码语言:javascript
复制
while ($u[3] != 1 && $u[3] != 0 && $v[3] != 1 )
{
    $q = floor($u[3] / $v[3]);

    for ($i = 1; $i <= 3; $i++)
    {
        $t = $u[$i] - $v[$i] * $q;
        $u[$i] = $v[$i];
        $v[$i] = $t;
        //writeln('u',i,'=',u[i],'  v',i,'=',v[i]);
    }
}

if ($u[1] < 0 )
    $u1] = $n + $u[1];

$rae = $u[1];

当然,u和v是数组。很抱歉没有提供更多的信息,但我和帕斯卡上次见面已经过去10年了,但我们有了很长一段时间的浪漫,因为我对辣妹有着深深的爱慕之情(C#和PHP) :)

票数 4
EN

Stack Overflow用户

发布于 2011-01-21 07:41:47

代码语言:javascript
复制
while($u[3] != 1 && $u[3] != 0 && $v[3] != 0)
{
 $q = ($u[3] - ($u[3] % $v[3]) ) / $v[3]; //just the same as floor($u[3]/$v[3]), but i want to use % here :)
 for ($i = 1; $i <= 3; $i++)
 {
  $t = $u[$i] - $v[$i]*$q;
  $u[$i] = $v[$i];
  $v[$i] = $t;
  echo '<br />u'.$i.'='.$u[$i].' v'.$i.'='.$v[$i];
 }
}
if ($u[1] < 0) $u[1] = $n + $u[1];
$rae = $u[1];
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4756370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档