zoukankan      html  css  js  c++  java
  • 面试题4,打印出100-999所有的“水仙花数”。

    提示:水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。

    (例如:1^3 + 5^3+ 3^3 = 153)

    package 面试;
    
    /**
     * 水仙花数
     * @author liugang
     * @create 2018/12/19 20:07
     **/
    public class Shuixianhua {
    
        public static void main(String[] args) {
            int a,b,c;
            for(int i=100;i<999;i++){
                a = i%10;
                b = (i/10)%10;
                c = i/100;
                if (a*a*a+b*b*b+c*c*c==i){
                    System.out.println("水仙花数:"+i);
                }
            }
    
    //        int i = 137;
    //        System.out.println(137%10);
        }
    
    
    }

    怎么求个位数和十位数和百位数呢

                a = Integer.parseInt(String.valueOf(i).substring(0,1));
                b = Integer.parseInt(String.valueOf(i).substring(1,2));;
                c = i%100;

    我之前是这样弄,但发现只打印了407,取的有问题

    c取的问题,个位数的值,应该是i%10这样取

    int i=137;
    //取个位数 7 = 137-130;130是可以被10整除的,所以可以这样取
    int c = i%10; 
    //取十位数 37 = 137-100;直接是先除10,降到两位数,然后再除10取模
    int b = (i/10)%10;
    //取百位数 直接除100就ok了;
    int a = i/100;
  • 相关阅读:
    暑期测试训练3
    对于在线段树上修改整段区间的理解
    UVA 11090 判负圈问题
    ZOJ 2588 求割边问题
    POJ 1523 网络连通
    hdu 1163
    hdu 1703
    hdu 2577 模拟
    hdu 3836 强连通+缩点:加边构强连通
    hdu 2571
  • 原文地址:https://www.cnblogs.com/fuckingPangzi/p/10145852.html
Copyright © 2011-2022 走看看