码迷,mamicode.com
首页 > 其他好文 > 详细

一个关于数字累积的问题

时间:2018-07-26 16:15:50      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:举例   总结   bsp   pre   个数   function   返回   nbsp   return   

题目描述:
小明有一个新奇的想法,就是有个非负整数n,不停地将各个位上的数字相加,一直加到只剩一个一位的整数。例如:给出n=37。相加的过程如下:3 + 7 = 10   1 + 0 = 1。因为1只剩下一个数字,所以返回1。
 
输入:
--非负整数n
 
输出:
--返回相加得到的一位整数
 
举例:
--输入:38  输出:2
<?php

function calc($n){
   $len = strlen($n);
   $num = 0;
   
   for($i=$len; $i >0 ;$i--){
       $num += intval($n/pow(10,$i-1))%10;
   }
   
   if($num >= 10){
      return  calc($num);
   }
   return $num;
}
$n =  12345;

$num = calc($n);

echo $num;

举例:如123 如何快速获取1   2   3

php版

获取3:123%10

获取2:intval(123/10)%10

获取1:intval(123/10/10)%10

总结:快速获取一个数字(x)各个位上的数值,可以用 x/基数的位权次幂  取整后对基数取余。

一个关于数字累积的问题

标签:举例   总结   bsp   pre   个数   function   返回   nbsp   return   

原文地址:https://www.cnblogs.com/yaoyao1556/p/9372047.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!