/*
求解从1到20000内的所有水仙花数:每位数字的n次方之和等于其本身,n是这个数的位数。 共五位数,设置一个数组用来保存数字的每一位,数组的有效长度就是该数的位数。最后读取数组的每位数字来判断水仙花数。
*/
#include <stdio.h>
#include <stdlib.h>
//如果一个变量声明时在前面使用 * 号,表明这是个指针型变量。换句话说,该变量存储一个地址,而 * 则是取内容操作符,意思是取这个内存地址里存储的内容。
void getPerBite(int num,int bArray[],int *bArrayLength)//num的每位数字存储到数组bArray中
{
while(num > 0)
{
bArray[*bArrayLength] = num % 10;//取num的每一位数字
*bArrayLength += 1;//数组实际长度+1
num /= 10;//从num中删除一位数字
}
}
int pow(int x,int y)//求x的y次幂
{
int mul = 1;
for(int i = 1;i <= y; i++)
{
mul *= x;
}
return mul;
}
void isNarcNum(int num,int bArray[],int bArrayLength)//判断num是否为水仙花数
{
int bSum = 0;
for(int i = 0;i < bArrayLength;i++)//访问num的每一位
{
bSum += pow(bArray[i],bArrayLength);
}
if(bSum == num)
printf("%d\n",num);
}
int main()
{
for(int iNum = 1;iNum <= 20000;iNum ++)
{
int bArray[10] = {0};
int bArrayLength = 0;
getPerBite(iNum,bArray,&bArrayLength);//取出num中每一位存储到数组bArray中
isNarcNum(iNum,bArray,bArrayLength);
}
}

最新文章

  1. httpclient模拟post请求json封装表单数据
  2. boost::asio::socket tcp 连接 在程序结束时崩溃。
  3. 1行代码,删除svn文件夹
  4. [ionic开源项目教程] - 第5讲 如何在项目中使用全局配置
  5. oracle中操作数据
  6. word2007 每页显示表头
  7. 关于启动 Eclipse 弹出“Failed to load the JNI shared library jvm.dll”错误的解决方法!
  8. 浏览器的visibilitychange 事件ie10以下不兼容
  9. 【转】非常详细的docker学习笔记
  10. FCKEditor的用法(asp版)
  11. FineUIMvc随笔(4)自定义回发参数与自定义回发
  12. 初用Linux, 安装Ubuntu16.04+NVIDIA387+CUDA8.0+cudnn5.1+TensorFlow1.0.1
  13. 关于post利用之Python
  14. 安装php调试工具 Xdebug的步骤 火狐 phpstorm联调
  15. tf.expand_dims 来增加维度
  16. 基础回顾之List集合
  17. SQL server 存储过程实现统计赋值
  18. Spring boot应用踩坑集锦
  19. 20155220 吴思其 《网络攻防》 Exp1 PC平台逆向破解(5)M
  20. (第九周)Beta-1阶段成员贡献分

热门文章

  1. Docker实用篇
  2. [Python]-tqdm模块-给for循环加上进度条
  3. 优化过的containerd配置文件:config.toml
  4. kubeadm init 命令执行流程
  5. 升级openssl和openssh脚本
  6. catalina.out日志割接
  7. 第四章:Django表单 - 5:模型表单ModelForm
  8. linux系统排查数据包常用命令
  9. Centos7下的基本操作
  10. PHP全栈开发(九):javascript 基础