1015 水仙花数

基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题
水仙花数是指一个 n 位数 ( n >= 3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)
给出一个整数M,求 >= M的最小的水仙花数。
Input
一个整数M(10 <= M <= 1000)
Output
输出>= M的最小的水仙花数
Input示例
99
Output示例
153

问题链接1015 水仙花数

问题分析

程序中所定义的水仙花数有哪些是不知道的,所以有必要先编写一个程序看看。

辅助程序都写出来了,那就干脆直接生成真正程序用的语句(AC的程序的第5行)吧。

实际上,计算查找水仙花数的程序,随着位数的增加,需要的运行时间越来越多,简直是无法忍受的。好在这个程序不用提交,自己用。

由于这个辅助程序时间复杂大,所以不能基于这个算法来编写提交的程序,不然会LTE。只能借用一下这个程序!

有了辅助程序,后面的事情就简单了。

程序说明:(略)

题记:编写一个辅助程序是一个好主意,常常需要的!

参考链接:(略)

生成水仙花数数组定义的辅助C++语言程序:

#include <iostream>
#include <cmath>using namespace std;const int N = 3;
const int MAXN = 6;
const int BASE = 10;int main()
{cout << "int dn[]={";int count=0;for(int i=N; i<=MAXN; i++) {int start = 1, end;for(int j=1; j<i; j++)start *= BASE;end = start * BASE;for(int j=start; j<end; j++) {int v=j, dn=0;while(v) {dn += pow(v % 10, i);v /= BASE;}if(dn == j) {if(++count != 1)cout << ", ";cout << j;}}}cout << "};" << endl;return 0;
}

AC的C++程序如下:

#include <iostream>using namespace std;int dn[]={153, 370, 371, 407, 1634, 8208, 9474, 54748, 92727, 93084, 548834};int main()
{int m, i;cin >> m;for(i=0; ; i++)if(dn[i] >= m) {cout << dn[i] << endl;break;}return 0;
}

51Nod-1015 水仙花数【进制+查表搜索】相关推荐

  1. 用查表法写c语言程序,C语言day07-15进制查表法

    #include void printfBinary(int value); void printfBunary2(int value); void printOct(int value); // 8 ...

  2. 51nod 1015 水仙花数

    #include <bits/stdc++.h> using namespace std;int arr[5]={153,370,371,407,1634};int main() {int ...

  3. 1015 水仙花数(枚举)

    1015 水仙花数 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题  收藏  关注 水仙花数是指一个 n 位数 ( n >= 3 ),它的每个位上的数字的 n ...

  4. ASCII表完整版(包含16进制对应表)

    ASCII表完整版(包含16进制对应表) ASCII码表完整版 ASCII值 16进制 控制字符 ASCII值 16进制 控制字符 0 00H NUT 32 20H (space) 1 01H SOH ...

  5. PAT (Advanced Level) 1015 Reversible Primes(进制转换)

    题目链接:点击查看 题目大意:现在给出定义"翻转素数":在10进制下是素数,并且在D进制下翻转后回到十进制,还是素数,现在给出一个十进制的数num和进制radix,判断是否属于翻转 ...

  6. python学习笔记分享(二十四)python学习笔记分期补充(二)复数,randint与sample,进制转换表,转义字符,二维数组,键,end,pass,迭代器和生成器

    一:复数 Python支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型. complex(x) 将x转换到一个复数,实数部 ...

  7. 产生任意进制乘法表的程序代码

    现在的小学生从二年级上学期开始学习九九乘法口诀表,不知道大家想过这个问题没有,就是为什么乘法口诀表是十进制的呢?当然是因为我们从小学习算术是从十进制记数开始的,但是为什么人们选择了十进制来记数呢? 实 ...

  8. 计算机十六进制4BH表示多大,【转】windows消息16进制对应表

    windows mobile编程,无论使用eVC还是.net CF,都脱不开windows消息机制这个框架.在日常的程序编写过程中,windows消息也是很常用的,windows消息常用的api函数也 ...

  9. 透明度百分和六进制对比表

    大家知道在color.xml中配置的颜色值,比如: <color name="alertdialog_line">#00e6e6e6</color> #00 ...

最新文章

  1. shp系列(六)——利用C++进行Dbf文件的写(创建)
  2. Android 线程池对象-ThreadPoolExecutor浅析
  3. js原生实现过渡效果的返回顶部功能实例
  4. 作用域经典练习题(主要是这个图太大不能一起分享)
  5. IC-CAD Methodology企业实战之openlava
  6. “买苹果辞退,买华为补贴”,这家公司支持国产手机的理由给我惊到了!
  7. 程序员面试必备:动图演示十大经典排序算法及代码实现
  8. excel查找空值快捷键_有了这7个Excel中常用的小技巧,再也不用担心自己要加班了!...
  9. php前端代码隐藏,php – Yii2 htaccess – 如何隐藏前端/ web和后台/ web完全
  10. 在线网上书店管理系统
  11. linux部署k8s教程
  12. C++ OpenCV 将黑点框出来
  13. 基础篇:6.9)形位公差-检测方法Measurement
  14. Java用Freemarker 生成word文档
  15. google 语音识别 VS 百度语音识别
  16. 黑群晖vmm专业版_折腾群晖笔记:利用VMM虚拟机 安装LEDE旁路由 实现软路由超强功能...
  17. 菜的抠脚团队正式成立
  18. 详解super()函数
  19. 网上下载的PPT模板总是会自动切换、自动播放动画,怎么取消自动播放
  20. C/C++数据结构课程设计安排

热门文章

  1. keil窗口显示不全_使用Keil语言的嵌入式C编程教程(下)
  2. if shell 条件语句简写_shell中的if语句
  3. fastadmin出现token验证错误!_gitee 拥有3.7k星星的极速后台框架—FastAdmin了解一下...
  4. 用友仓库档案boot直接访问html,图文解析用友仓库软件怎样设置档案?
  5. mysql decimal 上限_关于mysql的decimal类型的外键的一个特殊限制
  6. python抓取教学_Python Selenium 实战教学:爬取每日天气
  7. 浅谈C/C+内存管理、内存泄漏、堆栈
  8. 微服务的隔离和熔断机制
  9. 什么是低信噪比图像及处理方法
  10. Matlab中imadjust函数的用法