PHP 统计书页码中数字问题

 老师留的作业,开始只是(int)j/10,只要页码数大于10,数字0的数目就会有问题。调试后发现j取到了0.1多循环了一次。

 

问题描述:一本书的页码从自然数1开始顺序编码直到自然数n。书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0。例如,第6页用数字6表示,而不是06或006等。数字计数问题要求对给定书的总页码n,计算出书的全部页码中分别用到多少次数字0,1,2,...,9。

算法设计:给定表示书的总页码的十进制整数n(1≤n≤109)。编程计算书的全部页码中分别用到多少次数字0,1,2,...,9。

数据输入:只有1行,给出表示书的总页码的整数n。

结果输出:程序运行结束时,将计算结果输出。输出共有10行,在第k行输出页码中用到数字k-1的次数,k=1,2,...10。

输入示例:11

输出示例

1

4

1

1

1

1

1

1

1

1

<?php
    $array=array(0,0,0,0,0,0,0,0,0,0);
    $page=12;
    for($i=1;$i<=$page;$i++){
        if($i>=10){
            $j=$i;
            while($j){
                $m=$j%10;
                $array[$m]++;
                $j=(int)($j/10);  //此处($j/10)一定要加(),否则会只对j除法运算,多循环一次
            }
        }

        if($i<10){
            $array[$i]++;
        }
        

    }
    for($i=0;$i<10;$i++){
        echo $i."--->".$array[$i]."<br/>";
    }

续:

弱类型,python中

>>> (int)1/10
SyntaxError: invalid syntax
>>> int(1/10)
0

 c语言中:

#include<stdio.h>
void main(){
    float a=1;
    float b;
    b=(int)a/10;
    printf("%f",b);
}

//运行结果
0.000000

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值