zoukankan      html  css  js  c++  java
  • 3水仙花数

    package com.test;
    import java.math.*;
    public class test333 {

    /**
    * @param args
    * 【程序3】 题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。

    1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
    */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    //怎么算次方,立方, a*a*a这样写太累了;
    //发现math.pow(5,6);//表示求5的6次方;
    System.out.println((int) Math.pow(3, 3));//缺点是这个方法返回的是double类型,平时用的是int多一些,就强转了,可能有bug;
    /*
    if(math.pow(x,y)>Integer.MaxValue()){
    如果次方算出来大于int的最大值,那可能只能用double了;
    Double do...;
    }
    */
    // int ss = 101;//这方法是用 11/10=1(int返回整数的,会把小数丢失的bug)的方法取整;
    // System.out.println(123/100);//百分位
    // System.out.println((123-123/100*100)/10);//十分位
    // System.out.println(123-(123/100*100)-(123-123/100*100)/10*10);//个位
    System.out.println(1234%1000);//234
    System.out.println(1234%100);//34
    System.out.println("个位数:"+1234%10);//4(这样就很容易取到个位数了)
    System.out.println("十位数:"+1234%100/10);//3 (这是中间位数的取法)
    System.out.println("百位数:"+1234%1000/100);//2
    System.out.println("千位数:"+1234/1000);//1(这样就很容易取到最高位数了)

    for(int i=100;i<=999;i++){
    int cc = isShuiXianHuaShu(i);
    int cccc = isShuiXianHuaShu2(i);
    int cccccc = isShuiXianHuaShu3(i);
    }
    for(int i=1000;i<=9999;i++){
    int dd = isDD(i);
    }
    }
    private static int isShuiXianHuaShu3(int x) {
    // TODO Auto-generated method stub
    //这里是用的模运算,取模(整除,取余数,类似于去掉最高整数部分,取其他位数)的方法.
    int i=0,j=0,k=0;

    i=x / 100;//123/100=1;

    j=(x % 100) /10;//(123%100)/10=23/10=2

    k=x % 10;//123%10=3

    if(x==i*i*i+j*j*j+k*k*k){
    System.out.println(x+"是水仙花数");return x;}
    else{
    return 0;
    }
    }
    private static int isDD(int i) {
    // TODO Auto-generated method stub 1+1296+81+256=1296+338=1634=1634;
    int a,b,c,d;
    a=b=c=d=0;
    a = Integer.parseInt(String.valueOf(i).substring(0,1));
    b = Integer.parseInt(String.valueOf(i).substring(1,2));
    c = Integer.parseInt(String.valueOf(i).substring(2,3));
    d = Integer.parseInt(String.valueOf(i).substring(3,4));
    if(i == (a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d)){
    System.out.println("333333'"+i+"' 是一个金字塔数");
    }
    return 0;
    }
    public static int isShuiXianHuaShu(int x){
    int a,b,c;
    a=b=c=0;
    a = x/100;
    b = (x-x/100*100)/10;
    c = (x-x/100*100-(x-x/100*100)/10*10);
    if(x==(a*a*a+b*b*b+c*c*c)){
    System.out.println("1111111'"+x+"' is a ShuiXianHuaShu");
    }else{
    // System.out.println("'"+x+"' is not a ShuiXianHuaShu");
    }
    return x;
    }
    public static int isShuiXianHuaShu2(int x){
    int a,b,c;
    a=b=c=0;
    a = Integer.parseInt(String.valueOf(x).substring(0, 1));
    b = Integer.parseInt(String.valueOf(x).substring(1, 2));
    c = Integer.parseInt(String.valueOf(x).substring(2,3));
    if(x==(a*a*a+b*b*b+c*c*c)){
    System.out.println("2222222'"+x+"' is a ShuiXianHuaShu");
    }else{
    // System.out.println("'"+x+"' is not a ShuiXianHuaShu");
    }
    return x;
    }

    }

  • 相关阅读:
    openAI的仿真环境Gym Retro的Python API接口(续1)—— 游戏过程记录及回放
    openAI的仿真环境Gym Retro的Python API接口
    如何使用Python环境下的2D经典游戏仿真器(openai推出的)retro库运行游戏"刺猬索尼克" (SonicTheHedgehog-Genesis)
    运行openai的gym代码报错提示import pyglet,安装后依然报错:ImportError: sys.meta_path is None, Python is likely shutting down
    “阿里事件”的结束真的是结束吗
    BMS(电池管理系统)第二课——一文说清各大IC厂商模拟前端(AFE)优缺点
    BMS(电池管理系统)第一课——BMS系统框架简介什么是BMS?
    Linux内核调试技术——kprobe使用与实现
    Qt事件:changeEvent(改变事件)
    ImGui-imgui实例解析之ShowDemoWindowWidgets-Basic
  • 原文地址:https://www.cnblogs.com/signoffrozen/p/7117386.html
Copyright © 2011-2022 走看看