generating same number with the given length(生成给定长度的相同数字)
本文介绍了生成给定长度的相同数字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个数学作业,我应该把它写成代码。
我试了所有我想到的办法,但还是找不到解决办法。
所有这些都应该在不使用php函数的情况下完成,只有数学运算。
您可以使用While、For等...
例如,我有数字9
现在我应该创建长度为9
的数字999999999
例如,如果我有数字3
,则结果应该是333
。
有什么想法吗?
$gen = -1;
while($highest > 0) {
$gen = $highest + ($highest * 10);
$highest = $highest - 1;
}
echo $gen;
推荐答案
这里是一个不构建字符串的方法;它使用纯数学。(完成这项任务的方法有很多)
$x=9;
$result=0;
for($i=$x; $i; --$i){ // this looping expression can be structured however you wish potato-potatoe
$result+=$x*(10**($i-1)); // x times (10 to the power of (i-1))
}
echo $result;
// 999999999
*注意:如果要查找,**
类似于pow()
。
后期编辑:这里有一个聪明的小方法(悄悄地引以为豪)。我调用range()
和foreach()
只是为了演示;它不是我的方法的组成部分。
演示:https://3v4l.org/GIjfG
foreach(range(0,9) as $n){
// echo "$n -> ",(integer)(1/9*$n*(10**$n)-($n/10)),"
";
// echo "$n -> ",(1/9*$n*(10**$n)-(1/9*$n)),"
";
// echo "$n -> ",(int)(1/9*10**$n)*$n,"
";
// echo "$n -> ",(int)(10**$n/9)*$n,"
";
echo "$n -> ",(10**$n-1)/9*$n,"
";
}
输出:
0 -> 0
1 -> 1
2 -> 22
3 -> 333
4 -> 4444
5 -> 55555
6 -> 666666
7 -> 7777777
8 -> 88888888
9 -> 999999999
1/9
是此方法的主角,因为它生成.111111111
(重复)。从这个浮点数开始,我使用10**$n
将小数点左侧的1
"移位"足够,然后将这个浮点数乘以$n
,然后浮点数必须转换为一个整数才能完成。
根据@axiac的评论,新的英雄是10**$n-1
,它生成一系列达到所需长度的9(没有浮点数)。接下来,将9除以9,得到一系列的1,这将成为完美的乘数。最后,将一系列的数字与输入数字相乘,得到所需的输出。
这篇关于生成给定长度的相同数字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:生成给定长度的相同数字
基础教程推荐
猜你喜欢
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 在多维数组中查找最大值 2021-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01