代码改变世界

基础Java题目

2012-12-21 12:14  littlelion  阅读(221)  评论(0编辑  收藏  举报

在网上找了一些题目来做,都是用Java代码来实现,给自己规定每天做两道,勤思考,勤动手。

1. 求水仙花数。所谓水仙花数是指一个三位数,它等于各个位上数字的立方和,例如153=13+53+33

打印出100到999之间的所有水仙花数

static int IsDaffodil(int x){
        int sum = 0;
        while(x != 0){
            int temp = x%10;
            sum += temp*temp*temp;
            x /= 10;
        }
        return sum;
    }
    void printDaffodil(){
        for(int i=100;i<=1000;i++){
            if(IsDaffodil(i)==i)
                System.out.println(i);
        }
    }

其实一开始求各个位的数字我不是这么写的,我用最笨的方法来写,就像下面这样

static boolean bak(int x){
        int n1=(int)(x/100);
        int n2=(int)((x%100)/10);
        int n3=(x%100)%10;
        int sum=n1*n1*n1+n2*n2*n2+n3*n3*n3;
        if(x!=sum)
            return false;
        return true;
    }
    void printBak(){
        for(int i=100;i<=999;i++){
            if(bak(i)==true)
                System.out.println(i);
        }
    }

给BF看,直接一句,你不能这样做啊,你得用循环啊!

看来计算机的思想在我脑中还不算根深蒂固,我其实挺不聪明的我承认。

2. 求 s=a+aa+aaa+aaaa+a...a

这种题想到了怎么做就比较好写了

int aSum(int n,int x){
        int sum=0;
        int t=0;
        for(int i=0;i<n;i++){
            t=t*10+x;
            sum += t;
        }
        return sum;
    }

 

未完待续。。。