永发信息网

求pascal程序:求n!末尾0的个数以及从右到左第一个非零数字

答案:1  悬赏:0  手机版
解决时间 2021-01-18 03:30
  • 提问者网友:缘字诀
  • 2021-01-17 13:13
求pascal程序:求n!末尾0的个数以及从右到左第一个非零数字
最佳答案
  • 五星知识达人网友:低血压的长颈鹿
  • 2021-01-17 13:49
var n,i,j,x:longint;
begin
  readln(n);
  x:=1;
  j:=0;
  for i:=1 to n do
    begin
      x:=x*i;//计算阶乘
      while x mod 10 = 0 do
        begin
          x:=x div 10;
          inc(j);
        end;//去掉末尾的0并计数
      x:=x mod 10;//保留最后一个非零数
    end;
  writeln(x);
  writeln(j);
end.追问ln x/ln10什么意思 还有extended这个类型怎么没见过。。能解释下思想么我刚才测试下错了追答额,那个看错题目了,看成算n!去掉末尾的0的位数了。。。我已经改了。至于那个ln x/ln 10是换底公式,log(10,n),extended是real的一种扩展。

现在的答案应该是对的了。
var n,i,j,x:longint;
begin
  readln(n);
  x:=1;
  j:=0;
  for i:=1 to n do
    begin
      x:=x*i;//计算阶乘
      while x mod 10 = 0 do
        begin
          x:=x div 10;
          inc(j);
        end;//去掉末尾的0并计数
      x:=x mod 10;//保留最后一个非零数
    end;
  writeln(x);
  writeln(j);
end.追问我自己用数组做了。。追答.....
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯