练习题5:水仙花数

题目描述

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

输入描述:

输入数据有多组,每组占一行,包括两个整数m和n(100 ≤ m ≤ n ≤ 999)。

输出描述:

对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开; 如果给定的范围内不存在水仙花数,则输出no; 每个测试实例的输出占一行。

Python解法:

# -*- coding:utf-8 -*-"""水仙花数"""import sys

def main():   value = sys.stdin.readline().strip()   data = []   while value != ‘‘:      n, m = map(int, value.split())      m += 1      for i in range(n, m):         first = i % 10         second = i // 10 % 10         third = i // 100         # print(third, second, first)         if i == int(first ** 3 + second ** 3 + third ** 3):            data.append(str(i))      if len(data) == 0:         print(‘no‘)      else:         print(‘ ‘.join(data))      value = sys.stdin.readline().strip()      data.clear()

if __name__ == ‘__main__‘:   main()

原文地址:https://www.cnblogs.com/HwyStudy/p/9131640.html

时间: 2024-10-10 09:30:11

练习题5:水仙花数的相关文章

百担百马+百钱百鸡+水仙花数--------“穷举”的三个练习题

1 //百马百担类似于百鸡百钱的问题,穷举 2 3 for(int dm =0;dm<=33;dm++) //大马的数量,第一层循环 4 5 { 6 for(int zm =0;zm<=50;zm++) //中马的数量,第二层循环 7 8 { 9 for(int xm = 0; xm<=200;xm++) //小马的数量,第三层循环 10 11 { 12 if(dm+zm+xm==100&&dm*3+zm*2+xm/2.0==100) 13 { 14 System.out

Python练习题 009:水仙花数

[Python练习题 009] 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方. ---------------------------------------------------------------------- 这题也是送分题,只要能把任意三位数的百位.十位.个位拆解出来就好办了.思路:将任意3位数除以100再向下取整,即可得到百位数.将这个3位数减去(百位数*10

【华为练习题 】 n位水仙花数(初级)

[华为练习题 ] n位水仙花数(初级) 题目 水仙花数又称阿姆斯特朗数. 水仙花数是指一个n 位数( n≥3 ),它的每个位上的数字的n 次幂之和等于它本身.(例如:1^3 + 5^3 + 3^3 = 153) 求输入的数字是否为水仙花数 解答 #include <iostream> #include <vector> using namespace std; bool isRight(int n){ vector<int> v; int sum = 0, tmp =

C的一些简单练习题,关于水仙花数,求和,整数高低位输出,制定二进制位替换

#define _CRT_SECURE_NO_WARNINGS //输出一个整数的每一位 //1.低位输出到高位 #include <stdio.h> #include <stdlib.h> int main() { int a; printf("请输出一个数"); scanf("%d",&a); while(a) { printf("%d ",a % 10); a = a / 10; } system("

JAVA 基础编程练习题3 【程序 3 水仙花数】

3 [程序 3 水仙花数] 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例 如:153 是一个"水仙花数",因为 153=1 的三次方+5 的三次方+3 的三次方. 程序分析:利用 for 循环控制 100-999 个数,每个数分解出个位,十位,百位. package cskaoyan; import org.junit.Test; public class cskaoyan3 { @Test p

筛选水仙花数

//水仙花数--个位的平方+十位的平方+百位的平方(等于==)该三位数 #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(