课后练习1-Armstrong数
2016-07-10 21:21
316 查看
/* 输入一个正整数,判断它是不是一个Armstrong数。 这里,若一个m位正整数n的各位数字的m次方之和等于m,则称n是一个Armstrong数。 例如: 3位数中的Armstrong数 153=1^3+5^3+3^3 4位数中的Armstrong数 1634=1^4+6^4+3^4+4^4 5位数中的Armstrong数 92727=9^5+2^5+7^5+2^5+7^5 */ #include<iostream.h> //函数split拆出n的各位数字一次放在数组d中,返回n的位数m int split(long n,int d[]) { int m=0; while(n!=0) { d[m]=n%10; m++; n/=10; } return m; } //计算p=k^m的函数expnm long expnm(int k,int m) { long p=1; int i; for(i=1;i<=m;i++) p*=k; return p; } //求各位数字的m次方之和的函数sum long sum(int m,int d[]) { long s=0; int i; for(i=0;i<m;i++) s+=expnm(d[i],m); return s; } //主函数 void main() { long n; //定义变量n(长整数型) int m,d[10]; //数组d用于保存n的各位数字 cout<<"请输入正整数的值 n="; //将提示信息显示在屏幕上 cin>>n; m=split(n,d); if(n==sum(m,d)) cout<<n<<"是Armstrong数"<<endl; else cout<<n<<"不是Armstrong数"<<endl; }
相关文章推荐
- 关于一组数据的排列与组合
- FIRST DAY`S EVE
- 重载 覆盖 隐藏
- HTML5简介
- 【usaco 2013 feb Bronze】信息传递
- POJ2096(概率dp)
- 有序数组之二分查找
- Python note 02
- Flask总结(二):URL映射
- 【python学习笔记】函数式编程:返回函数
- Longest Valid Parentheses
- 什么是html5
- 句子逆序
- 初识Servlet过滤器
- sql中的触发器
- 计算机网络(10)-----TCP的拥塞控制
- 7.2 相关向量机
- 快速幂+费马小定理 690D2 - The Wall (medium)CF
- 网络框架-volley
- 以下是C++的不同数据类型值的比较语句,请问这些判断语句中作为条件部分的语句编写有问题的有: