1015 水仙花数(水题)

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

从m开始枚举,直到遇到第一个水仙花数。

 1 #include <iostream>
 2 using namespace std;
 3 int pow(int x,int n)
 4 {
 5     int ans=1;
 6     for(int i=1;i<=n;i++)
 7         ans*=x;
 8     return ans;
 9 }
10 bool is_shui(int n)
11 {
12     int tmp=n;
13     int len=0;
14     int ans=0;
15     while(tmp)
16     {
17         tmp/=10;
18         len++;
19     }
20     tmp=n;
21     while(n)
22     {
23         int t=n%10;
24         n/=10;
25         ans+=pow(t,len);
26     }
27     if(ans==tmp)
28         return true;
29     return false;
30 }
31 int main()
32 {
33     int m;
34     cin>>m;
35     while(!is_shui(m))
36         m++;
37     cout<<m<<endl;
38     return 0;
39 }

 
时间: 2024-11-08 22:11:05

1015 水仙花数(水题)的相关文章

1015 水仙花数(枚举)

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 加油 #inc

[2016-05-10][51nod][1015 水仙花数]

时间:2016-05-10 16:23:29 星期二 题目编号:[2016-05-10][51nod][1015 水仙花数] 题目大意: 水仙花数是指一个 n 位数 ( n >= 3 ),它的每个位上的数字的 n 次幂之和等于它本身.(例如:1^3 + 5^3 + 3^3 = 153), 给出一个整数M,求 >= M的最小的水仙花数. 分析:直接算出前几个水仙花数就好 #include<stdio.h> using namespace std; int main(){ int m;

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 久违的水仙花数,第一发还傻傻的写了发暴力.. 弱数

51Nod 1015 水仙花数

#include <cmath> #include "iostream" using namespace std; int main() { int m; int a[10]={0}; cin>>m; for(int i=m;;i++){ int n=i,len=0,sum=0; while(n!=0) { len++; a[len]=n%10; n=n/10; } for(int j=1;j<=len;j++){ sum+=pow(a[j],len);

C语言——求水仙花数

昨天,雷老师偶有闲致,评讲了n周前的C程序设计作业.其中讲到了一到求水仙花数的题,给出了一种漂亮的算法,在此记录下来. 原题 输出所有的水仙花数,所谓水仙花数是指一个3位数,其各位数字立方和等于该数本身. 解题 思路 初始化i=100. ①取i的各位数,百位a,十位b,个位c. ②判断i==a∧3+b∧3+c∧3 是否成立 ③如果成立则输出,否则不输出. ④i=i+1,当i小于1000重复①,否则结束. 关键算法:取任意三位数的各位数 算法一:除减法 ①将数除以100,由整型数据特点,小数点后被

华为入职培训题——水仙花数

描述: 水仙花数又称阿姆斯特朗数. 水仙花数是指一个n 位数( n≥3 ),它的每个位上的数字的n 次幂之和等于它本身. (例如:1^3 + 5^3 + 3^3 = 153) 求输入的数字是否为水仙花数 知识点: 工程环境请使用VS2005 题目来源: 软件训练营 练习阶段: 初级 这题不知道有没有好的方法,我的代码效率不高,就是按要求做下来,希望各位大年给说说高效的算法~ #include<iostream> using namespace std; // 功能:判断输入 nValue 是否

C++刷题-水仙花数

Description 春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: "水仙花数"是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3. 现在要求输出所有在m和n范围内的水仙花数. Input 输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999). Output 对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于 m,并且小于等于n,如

(语法百题27)水仙花数

内容: 求100-999中的水仙花数,(若三位数abc,abc=a^3+b^3+c^3, 则称abc为水仙花数.如153,1^3+5^3+3^3=1+125+27=153,则153是水仙花数) 输入说明: 无 输出说明: 每行一个整数 #include <stdio.h> int main() { int a,b,c,i; for (i=100;i<1000;i++) { a=i/100; b=i/10%10; c=i%10; if (a*a*a+b*b*b+c*c*c==i) { pr

Java算法题3.打印出所有的“水仙花数”。

[原创 转载注明出处] 题目3:打印出100-999所有的“水仙花数”. 思路: 水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身. (例如:1^3 + 5^3+ 3^3 = 153) Java代码实现 1 package jichu; 2 3 public class jichu3 4 { 5 public static void main(String[] args) 6 { 7 int b, s, g; 8 for(int i = 100; i <