求水仙花数字

一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。

 1 package test02;
 2
 3 import java.util.ArrayList;
 4 import java.util.Iterator;
 5 import java.util.Scanner;
 6 /*
 7  * 指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。
 8  * */
 9 public class ShuiXianHua {
10     public static void main(String[] args) {
11         Scanner in = new Scanner(System.in);
12         while(true){
13             String str = in.nextLine();
14             String st[] = str.split(" ");
15             Integer n1 = new Integer(st[0]);
16             Integer n2 = new Integer(st[1]);
17             ArrayList<Integer> arr = new ArrayList<Integer>();//用于存储合格数字
18             for(int i=n1;i<=n2;i++){
19                 int num1 = i/100;            //得到百位
20                 int num2 = (i-num1*100)/10;
21                 int num3 = i-num1*100-num2*10;
22                 int b0 = (int) java.lang.Math.pow(num1,3);
23                 int b1 = (int) java.lang.Math.pow(num2,3);
24                 int b2 = (int) java.lang.Math.pow(num3,3);
25                 if(i == (b0+b1+b2)){
26                     arr.add(new Integer(i));
27                 }
28             }
29             if(arr.size() == 0){        //不存在合格的数字
30                 System.out.print("no");
31             }else{
32                 Iterator<Integer> it = arr.iterator();
33                 for(int i=0;i<arr.size();i++){
34                     if(i<arr.size()-1){
35                         System.out.print(it.next() + " ");
36                     }else{
37                         System.out.print(it.next());
38                     }
39                 }
40             }
41             System.out.println();
42         }
43     }
44 }
时间: 2024-12-12 10:46:10

求水仙花数字的相关文章

求一组数字序列的分布情况(java)

最近需要做一个正态分布的函数图像所以要处理一段double序列 写了这个算法  先上效果图: 核心思想: 1先根据步长计算每一个区间 2循环进行判断序列中每个数属于哪个区间 3用一个数组来保存每一个区间中 数的个数 这样就可以得到整个分布函数了 当然效率值得考虑 我的机器1百万以上的数据就会有问题了 这是一个double类型的例子 int型就更容易啦 上代码! 1 package com.huang.distribution; 2 3 import java.math.BigDecimal; 4

(hdu step 1.2.8)Specialized Four-Digit Numbers(求一个数字各个数位上数字的和)

题目: Specialized Four-Digit Numbers Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 2027 Accepted Submission(s): 1349   Problem Description Find and list all four-digit numbers in decimal notation

输入正整数n,求各位数字和

import java.util.Scanner; /** * @author:(LiberHome) * @date:Created in 2019/3/5 10:24 * @description: * @version:$ */ /*输入正整数n,求各位数字和*/ public class page1401 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.

求一数字序列的最大子段和(三种解法)

import java.util.Scanner; public class MaxSum {      public static void main(String[] args) {          Scanner scan = new Scanner(System.in);         System.out.println("请输入整数个数:");         int N = scan.nextInt();         int[] arr = new int[N];

求任意数字累加和

/* * 编写程序求 1+3+5+7+--+99 的和值 */ public class MarkDome { public static void main(String[] args) { int add = sum(99); System.out.println(add); System.out.println(sum(10)); } //累加方法 public static int sum(int num){ int sum =0; for(int x=1;x<=num;x++){ su

求任意数字之和

import java.util.*; public class Number2 { public void run(int number){ if(number > 1000){ System.out.println("输入数字大于1000!"); System.exit(0); } int [] a= new int[3]; a[2] = number /100; a[1] = (number - a[2]*100)/10; a[0] = (number - a[2]*100

求1000数字中13个相乘最大值

#include<stdio.h>int main(void){ int i,b; long long large; long long t; int x[2000]; for(i=1;i<=1000;i++) { scanf("%1d",&x[i]); } large=1; for(i=1;i<=13;i++) { large=large*x[i]; } for(i=2;i<=988;i++) { t=1; for(b=i;b<=i+12;

面试题编程题01-python打印水仙花数字

1 for i in range(100,1000): 2 a=int(i/100) 3 b=int((i/10)%10) 4 c=int(i%10) 5 if i==(a**3+b**3+c**3): 6 print(i) 原文地址:https://www.cnblogs.com/feihujiushiwo/p/10888573.html

华为机试题【10】-求数字基root

题目描述: 求整数的Root:给定正整数,求每位数字之和;如果和不是一位数,则重复; 输入:输入任意一个或多个整数 输出:输出各位数字之和,直到和为个位数为止(输入异常,则返回-1),多行,每行对应一个输入数据的结果. 样例输入: 25 865 样例输出: 7 1 思路分析: 首先求个位数相加,经典方法,求余相除 要求各个位数的和是小于10,可以采用递归或者循环 代码: import java.util.Scanner; public class Main { static int[] num