php如何做水仙花数,使用PHP实现水仙花数及各种特殊有趣数的输出
尊敬的读者,见文好。
本文包含以下内容:
1,为什么要写这篇文章!
2,具体的方案及代码实现!
3,你可能遇到的问题!
4,文末本文测试用源码网盘地址!
特殊说明:
本文使用的语言是PHP;
本文运行的环境是:Apache2.4, PHP5.6。
第一部分:为什么要写这篇文章!
因为经常会有人问到如何输出“水仙花数”,经查阅百度百科,不仅仅有“水仙花数”,还有很多有意思的数字!尝试写出了可以生成这些有趣数字的一个函数!有两种思路!
注:经过压测,第一种思路的执行效率要高于第二种!可见对于数据的处理效率要远远高于对于文字的处理的!
第二部分:具体的方案及代码实现!
第一种方案:
使用求余数加上php中的地板函数floor()来获取数字的每一位并进行数学运算!/**
* @author Lizisir <962310113@qq.com>
* 可以计算数字中具有特殊含义的数字
* @param int $number 数字的位数
* @return null
*/
function specialNumber( $number )
{
$numberNameList = [
'独身数',
'没有',
'水仙花数',
'四叶玫瑰数',
'五角星数',
'六合数',
'北斗×××数',
'八仙数',
'九九重阳数',
'十全十美数'
];
// 输出对应的特殊数字的名称 例如:水仙花数
echo $numberNameList[ $number-1 ].":
";
$start = pow( 10, $number-1 ) + 1;
$end = pow( 10, $number );
for ( $i = $start; $i
{
// 接受数字每位的n次幂的和
$sum = 0;
// 目标数字
$aimNumber = $i;
// 计算数字每位的n次幂的和
while( $aimNumber != 0 )
{
// 获取每一位的数字
$wei = $aimNumber % 10;
// 计算每一位的n次幂并加到和上面
$sum += pow( $wei, $number );
// 去掉末尾数字
$aimNumber = floor( $aimNumber / 10 );
}
if( $i == $sum )
{
echo $i;
echo "
";
}
}
}
第二种方案:
利用PHP中可以把字符串当数组处理的好处,先把数据转化成字符串,利用下标直接取出每一位 并进行运算!/**
* @author Lizisir <962310113@qq.com>
* 可以计算数字中具有特殊含义的数字
* @param int $number 数字的位数
* @return null
*/
function specialNumber( $number )
{
$numberNameList = [
'独身数',
'没有',
'水仙花数',
'四叶玫瑰数',
'五角星数',
'六合数',
'北斗×××数',
'八仙数',
'九九重阳数',
'十全十美数'
];
// 输出对应的特殊数字的名称 例如:水仙花数
echo $numberNameList[ $number-1 ].":
";
$start = pow( 10, $number-1 ) + 1;
$end = pow( 10, $number );
for ( $i = $start; $i
{
// 接受数字每位的n次幂的和
$sum = 0;
// 计算数字每位的n次幂的和
$i = (string)$i;
for($key=0; $key
{
// 获取每一位的数字
$wei = $i[$key];
// 计算每一位的n次幂并加到和上面
$sum += pow( $wei, $number );
}
if( $i == $sum )
{
echo $i;
echo "
";
}
}
}
第三部分:你可能会遇到的问题!
在代码测试时,你可能会遇到报错:
Fatal error: Maximum execution time of 30 seconds exceeded
可行的一种解决方案:
进入到PHP的安装目录,修改php.ini文件:
找到:
max_execution_time=30
修改为:
max_execution_time=300或者更大值!
第四部分:本文代码的网盘地址!
链接:http://pan.baidu.com/s/1mhY7hMw
密码:74hq
php如何做水仙花数,使用PHP实现水仙花数及各种特殊有趣数的输出相关推荐
- 输出所有的“水仙花数”,所谓的水仙花数是指一个3位数,其各位数字立方和等于该数本身。
题目来源: C语言程序设计(第四版)/ 第五章 / 习题5.3 题目要求: 输出所有的"水仙花数",所谓的水仙花数是指一个3位数,其各位数字立方和等于该数本身.例如153就是一个水 ...
- 打印出所有的水仙花数javascript_习题4-6 水仙花数 (20分)
水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身.例如:153=13+53+33. 本题要求编写程序,计算所有N位水仙花数. 输入格式: 输入在一行中给 ...
- 求两个数之间的水仙花数.c语言,求水仙花数(C语言/Java)
求出0-999999之间的所有"水仙花数"并输出. "水仙花数"是指一个三位数,其各位数字的立方和确好等于该数本身, 如:153=1 ^ 3+5 ^ 3+3 ^ ...
- python中如何求水仙花数_python如何求水仙花数?
水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI).自恋数.自幂数.阿姆斯壮数或阿姆斯特朗数(Armst ...
- c语言水仙花数简书,2010 水仙花数 java
水仙花数 Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others) Total Submissio ...
- 用Java编写程序,输入一个数,并且输出这个数以内的所有的水仙花数,所谓的水仙花数是值一个3位数,其各个位上数立方和等于其本身。
import java.util.Scanner;public class Miss {public static void main(String args[]) { Scanner sc=new ...
- 水仙花数python代码for_水仙花数如何用python代码表示?
水仙花数如何用python代码表示? 水仙花数的python代码为: 水仙花数是指一个3位正整数,它的每个位上的数字的3次幂之和等于它本身.(例如:1^3 + 5^3+ 3^3 = 153) 下面用一 ...
- java实现求二十一位水仙花数(21位水仙花数)
一个N位的十进制正整数,如果它的每个位上的数字的N次方的和等于这个数本身,则称其为花朵数. 例如: 当N=3时,153就满足条件,因为 1^3 + 5^3 + 3^3 = 153,这样的数字也被称为水 ...
- 判断水仙花数 php,php 判断 水仙花数
水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI).自恋数.自幂数.阿姆斯壮数或阿姆斯特朗数(Armst ...
最新文章
- 2023年中国AI论文影响力超越美国?网友:长期看,数量不等于质量
- 点权生成树(gentree)
- 【Karma】多环境自动测试框架 -- 基础教程
- mysql的多master调度_innodb中master线程的调度的算法改进(mysql 5.6.26)
- c++ why can't class template hide its implementation in cpp file?
- c++二进制转十进制_二进制,八进制,十进制,十六进制转换详解~
- 20175223 MySQL
- 深入解析java web_java进阶--深入分析java Web
- ThinkPHP5.0源码学习之框架启动流程
- 图像的抽线、抽丝、抽图 神马是alpha通道
- error40无法打开到sql_SQL-mysql游标与触发器
- ServiceManager 进程启动源码分析
- JDK5新版RMI编程指南
- python语言中print函数的作用_[转载]python中的@符号的作用
- 2022苹果CMS全新二开影视源码App源码完整版
- vmware 删除后安装不了,vmware workstation.msi failed
- 画法几何,工程制图基础.....多角度平面投影图推断立体空间结构,实际距离的判别等
- SU2021下载SketchUp2021最新下载安装教程SU草图大师2021下载安装
- javascript 知识点总结
- Domino未来三年的版本
热门文章
- linux下为php开启oci8扩展(ubuntu14亲测可用)
- IOS的UIPickerView 和UIDatePicker
- 实用的网站***步骤
- 搜索引擎的强大意味着与之合作就会双赢?
- 使用Mybatis-plus更新null字段的解决方案
- linux下安装nginx的采坑记录
- mysql常见错误及解决办法_mysql常见错误代码、原因及处理办法
- dell台式机进入安全模式_打造未来高效办公体验 华为首款商用台式机正式发布...
- jitter单位_产生jitter的原因
- maven + sonar, gradle + sonar