【HDU 2010】水仙花数

http://acm.hdu.edu.cn/showproblem.php?pid=2010

春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。现在要求输出所有在m和n范围内的水仙花数。

Solution:水仙花数又称阿姆斯特朗数,没有直接规律,只能暴力求解.

有限数列,打表算了(懒写暴力)

使用在线算法打大表:

1:  1, 2, 3, 4, 5, 6, 7, 8, 9

3: 153, 370, 371, 407

4: 1634, 8208, 9474
5: 54748, 92727, 93084

6: 548834

7: 1741725, 4210818, 9800817, 9926315

8: 24678050, 24678051, 88593477

9: 146511208, 472335975,534494836, 912985153

10: 4679307774, 32164049650

11:40028394225

11: 42678290603

11: 49388550606

11: 32164049651

11: 94204591914

11: 44708635679

11: 82693916578

14: 28116440335967

16: 4338281769391370

16: 4338281769391371

17: 21897142587612075

17: 35641594208964132

17: 35875699062250035

19: 1517841543307505039

19: 3289582984443187032

19: 4929273885928088826

19: 4498128791164624869

20: 63105425988599693916

21: 449177399146038697307

21: 128468643043731391252

23: 27907865009977052567814

23: 35452590104031691935943

23: 27879694893054074471405

23: 21887696841122916288858

24: 174088005938065293023722

24: 188451485447897896036875

..

有限序列,总共88最后一个115132219018763992565095597973971522401

// This file is made by YJinpeng,created by XuYike‘s black technology automatically.
// Copyright (C) 2016 ChangJun High School, Inc.
// I don‘t know what this program is.

#include <iostream>
#include <cstdio>
using namespace std;
int a[10]={153,370,371,407},b[10];
int main()
{
    freopen("2010.in","r",stdin);
    freopen("2010.out","w",stdout);
    int l,r,flag;
    while(~scanf("%d %d",&l,&r)){
        flag=0;
        for(int i=0;i<4;i++)
            if(a[i]>=l&&a[i]<=r)b[++flag]=a[i];
        if(flag){for(int i=1;i<flag;i++)printf("%d ",b[i]);printf("%d",b[flag]);}
        else printf("no");printf("\n");
    }
    return 0;
}
时间: 2024-12-08 12:00:33

【HDU 2010】水仙花数的相关文章

hdu 2010 水仙花数

水仙花数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 124377    Accepted Submission(s): 36790 Problem Description 春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: "水仙花数"是指一个三位数,它的各位数字的立方和等于其本身,比如:

2010.水仙花数

#include<stdio.h> int main(){          int m,n,i,a,b,c,s;          scanf("%d%d",&m,&n);          for(i=m;i<=n;i++){                    a=i/100;b=i/10-a*10;c=i%10;                    s=a*a*a+b*b*b+c*c*c;                    if(s==

水仙花数(杭电2010)

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

hdu 2010~2014

hdu 2010 求一个区间内的水仙花数. 水,但是要注意给的区间的两边大小要先排序 1 #include<stdio.h> 2 int main() 3 { 4 int n,m,i,count=0,x1,x2,x3; 5 while (scanf("%d%d",&m,&n)!=EOF) 6 { 7 if (m>n) 8 { 9 i=m; 10 m=n; 11 n=i; 12 } 13 for (i=m;i<=n;i++) 14 { 15 x1=

杭州电子科技大学Online Judge 之 “水仙花数(ID2010)”解题报告

杭州电子科技大学Online Judge 之 "水仙花数(ID2010)"解题报告 巧若拙(欢迎转载,但请注明出处:http://blog.csdn.net/qiaoruozhuo) Problem Description 水仙花数 春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: "水仙花数"是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3. 现在要求输出所有在m和n范围内的水仙花数. Inpu

筛选水仙花数

//水仙花数--个位的平方+十位的平方+百位的平方(等于==)该三位数 #include<stdio.h>int main(){ int ge,shi,bai; //从100开始筛选for(int i=100;i<1000;i++){ ge=i%10; shi=i/10%10; bai=i/100%10; if(a==ge*ge*ge+shi*shi*shi+bai*bai*bai){//水仙花数的判断条件 //输出 printf("%d\t",i); }} retu

js算法集合(一) 水仙花数 及拓展(自幂数的判断)

js算法集合(一) ★ 最近有些朋友跟我说对js中的一些算法感到很迷惑,知道这个算法到底是怎么回事,但是就是不会用代码把它写出来,这里我跟大家分享一下做水仙花数的算法的思路,并对其扩展到自幂数的算法,希望能对大家有所帮助. 1.验证一个数是否为水仙花数 ①要写水仙花数的算法,我们首先来了解一下什么是水仙花数,水仙花数是指一个 3位正整数 ,它的每个位上的数字的 3次幂之和等于它本身.(例如:1^3 + 5^3+ 3^3 = 153): ②了解了什么是水仙花数我们就开始分析该怎么下手.通过定义来看

51NOD 1016 水仙花数 V2(打表)

传送门 水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身.(例如:1^3 + 5^3 + 3^3 = 153,1634 = 1^4 + 6^4 + 3^4 + 4^4). 给出一个整数M,求 >= M的最小的水仙花数. Input 一个整数M(10 <= M <= 10^60) Output 输出>= M的最小的水仙花数,如果没有符合条件的水仙花数,则输出:No Solution Input示例 300 Output示例 370 解题思路:

水仙花数

描述 请判断一个数是不是水仙花数.其中水仙花数定义各个位数立方和等于它本身的三位数. 输入 有多组测试数据,每组测试数据以包含一个整数n(100<=n<1000) 输入0表示程序输入结束. 输出 如果n是水仙花数就输出Yes 否则输出No 样例输入 153 154 0 样例输出 Yes No 1 #include <stdio.h> 2 3 int main(){ 4 int number; 5 int sum; 6 int temp; 7 8 while(1){ 9 scanf(