W1D4 作业题

1、设计一个方法,输出所有的水仙花数

static void waterFlowerNumber(int n) {
    if (n > 100 && n < 999) {
        int a = n / 100;
        int b = n / 10 % 10;
        int c = n % 10;
        int sum = a * a * a + b * b * b + c * c * c;
        if (sum == n) {
            System.out.println(n);
            return;
        }
    }
}

2、设计一个方法,输出指定范围内的所有质数,范围由参数控制

static void primeNumber(int a, int b) {
    int numax = a > b ? a : b;
    int numin = a < b ? a : b;
    for (int i = numin; i <= numax; i++) {
        boolean flag = true;
        for (int j = 2; j <= i / 2; j++) {
            if (i % j == 0) {
                flag = false;
                break;
            }
        }
        if (flag) {
            System.out.println(i);
        }
    }
}

3、设计一个方法,1-3+5-7+9-11…-99+101的值,并将计算结果返回

static int calPlusMinus() {
    int res = 0;
    for (int i = 1 ;i <= 101 ;) {
        res += i;
        i +=4;
    }
    for(int j = 3 ; j <= 99;) {
        res -= j;
        j += 4;
    }	
    return res;
}

4、设计一个方法,计算两个数字的最小公倍数,数字由参数决定,并将结果返回

static int LCM(int x, int y) {
    int numax = x > y ? x : y;
    int numin = x < y ? x : y;
    for (int i = numax;; i++)
        if (i % numin == 0 && i % numax == 0)
            return i;
}

5、设计一个方法,计算a+aa+aaa+…+a…a的值,a和数字的个数由参数控制

static void continuePlus1(int a, int n) {
    int sum = 0;
    for (int i = 1; i <= n; i++) {
        int temp = 0;
        for (int j = 1; j <= i; j++) {
            temp = temp * 10 + a;
        }
        sum += temp;
    }
    System.out.println(sum);

}

static void continuePlus2(int a,int n){
int res = 0;
int sum = 0;
int n1 = n;
    while (n1 != 0) {
        res = res * 10 + a;
        sum = res + sum ;
        n1--;
    }
System.out.println(sum);
}

6、设计一段程序,计算一个数字的二进制原码(只考虑正数)

static void tenToBinary(int num) {
    String str1 = "",str2 = "";
    while(num != 0){
        int temp = num % 2 ;
        str1 += temp;	
        num = num / 2;    //num = num >> 2;
        }
    str2 = new StringBuffer(str1).reverse().toString(); // 字符串翻转
    System.out.println(str2);
}

7、设计一段程序,计算一个时间的下一秒,时分秒用参数控制,并拼接好字符串返回

static String timeTranslation(int h, int m, int s) {
    String str = "";
    int res = h * 60 * 60 + m * 60 + s + 1;
    int h1 = res / 60 / 60;
    int m1 = (res - h1 * 60 * 60) / 60;
    int s1 = (res - h1 * 60 * 60) % 60;
    str = h1 + " : " + m1 + " : " + s1;
    return str;
}

8、设计一段程序,计算两个日期之间相差多少天,两个日期的年月日都由参数控制

static int dateTime(int y, int m, int d) {
    int[] month = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
    int sum = 0;
    for (int i = 1; i < y; i++)
        if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0) {
            sum += 366;
            month[2] = 29;
        } 
    	else
            sum += 365;
    for (int i = 1; i < m; i++)
        sum += month[i];
    sum += d;
    return sum;
}

static int twoDateMinus(int y1, int m1, int d1, int y2, int m2, int d2) {

    int day1 = dateTime(y1, m1, d1);
    int day2 = dateTime(y2, m2, d2);
    int minus = day2 > day1 ? day2 - day1 : day1 - day2;
    System.out.println("差 " + minus + "天");
    return minus;

}

9、九九乘法表

static void nineTable() {
    for (int i = 1; i <= 9; i++) {
        for (int j = 1; j <= i; j++)
            System.out.print(i + " × " + j + "=" + i * j + " \t");
        System.out.println();
    }

}

10、已知一只母鸡5元,一直公鸡3元,三只小鸡1元。你有100元来购买鸡,要求正好花完100元钱,且正好买100只鸡,列出所有的购买方案,例如:公鸡x只,母鸡x只,小鸡x只。

static void buyChickens() {
    for (int m = 0; m <= 100 / 5; m++)
        for (int g = 0; g <= 100 / 3; g++)
            for (int x = 0; x <= 100; x++) 
                if (m * 5 + g * 3 + x / 3 == 100 && x % 3 == 0 && g + m + x == 100) {
                    System.out.println(m);
                    System.out.println(g);
                    System.out.println(x);
                }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值