水仙花数

代码

  1. package com.woniuxy.demo1;
  2. public class Q2 {
  3. public static void main(String [] args) {
  4. int num = 100 , individual , ten , hundred;
  5. System.out.println("水仙花数:");
  6. while(num<=999) {
  7. individual = num % 10;
  8. ten = ( num % 100 - individual ) / 10;
  9. hundred = num / 100;
  10. if(num == Math.pow(individual, 3) + Math.pow(ten,3) + Math.pow(hundred,3)) {
  11. System.out.println(num);
  12. }
  13. num++;
  14. }
  15. }
  16. }

结果展示

image.png

遇到的问题及纰漏

暂无

新用到的函数

Math
详见基础的math常用方法

次方计算

代码

  1. package com.woniuxy.demo1;
  2. import java.util.Scanner;
  3. public class Q3 {
  4. public static void main(String [] args) {
  5. Scanner input = new Scanner(System.in);
  6. System.out.println("请输入底数");
  7. double num = input.nextDouble();
  8. System.out.println("请输入指数(要求输入为整数)");
  9. int exponet = input.nextInt();
  10. double number = 1.0 ;
  11. if(exponet < 0 ) {
  12. for(int i=0 ; i < Math.abs(exponet) ; i++) {
  13. number = number * num;
  14. }
  15. number = 1.0 / number;
  16. }else if(exponet == 0){
  17. number = 1;
  18. }else {
  19. for(int i=0 ; i < exponet ; i++) {
  20. number = number * num;
  21. }
  22. }
  23. System.out.println(num+"的"+exponet+"次="+number);
  24. input.close();
  25. }
  26. }

结果展示

一般情况
image.png
指数为负数
image.png
指数为零时
image.png

遇到的问题及纰漏

输出遇到问题
image.png结果理应为64.36343

抓球问题

代码

注:稍微改了一点题

  1. package com.woniuxy.demo1;
  2. public class Q4 {
  3. public static void main(String [] args) {
  4. int one, two, five;
  5. System.out.println("满足的组合有:");
  6. for(int i = 0; 50-4*i>0; i++) {
  7. one = 3*i;
  8. two = 50-4*i;
  9. five = i;
  10. System.out.println("一元有"+one+"枚,两元有"+two+"枚,五元有"+five+"枚;");
  11. }
  12. System.out.println("end");
  13. }
  14. }

结果展示

image.png

遇到的问题及纰漏

暂无

九九乘法表

代码

  1. package com.woniuxy.demo1;
  2. public class Q5 {
  3. public static void main(String [] args) {
  4. int multiply;
  5. for(int i=1; i<=9; i++) {
  6. for(int j=1; j<=i; j++) {
  7. multiply = i*j;
  8. System.out.print(i+"X"+j+"="+multiply+" ");
  9. }
  10. System.out.print("\n");
  11. }
  12. }
  13. }

结果展示

image.png

遇到的问题及纰漏

暂无

猜价格

代码

  1. package com.woniuxy.demo1;
  2. import java.util.Scanner;
  3. public class Q6 {
  4. public static void main(String [] args) {
  5. Scanner input = new Scanner(System.in);
  6. System.out.println("声明价格为0~200内的随机一个整数");
  7. int rand_num;
  8. rand_num = (int)(200*Math.random());
  9. //产生一个随机数
  10. int num = -1; //初始化避免初始值与随机数恰好一致
  11. while(num != rand_num) {
  12. System.out.println("请猜一个0~200的价格:");
  13. num = input.nextInt();
  14. if(num >= rand_num) {
  15. System.out.println("您估高价格了");
  16. }else {
  17. System.out.println("您估低价格了");
  18. }
  19. }
  20. input.close();
  21. System.out.println("恭喜您已经猜中价格!价格为:"+num);
  22. }
  23. }

结果展示

image.png

遇到的问题及纰漏

暂无

代码升级

package com.woniuxy.class01;
import java.util.Scanner;
import java.util.Random;
import java.util.InputMismatchException;

public class Q6_2 {
    public static void main(String [] args) {
        Scanner scanner = new Scanner(System.in);
        Random random = new Random();
        System.out.println("声明价格为0~200内的随机一个整数");

        int rand_num = random.nextInt(201);
        int num = -1;//初始化避免初始值与随机数恰好一致
        int min = 0;
        int max = 200;
        while(num != rand_num) {
                try {
                System.out.println("请猜一个"+min+"~"+max+"的价格:");
                num = scanner.nextInt();
                if(num >= rand_num) {
                    if(num >= max) {
                        if(num > 200) {
                            System.out.println("您输入的价格越界了,最高值为200,请重新输入:");
                        }else {
                            System.out.println("您输入的价格高于上次报价的最大值"+max+",请重新输入:");
                        }
                    }else {
                        System.out.println("您估高价格了");
                        max = num;
                    }
                }else {
                    if(num <= min) {
                        if(num < 0) {
                            System.out.println("您输入的价格越界了,最小值为0,请重新输入:");
                        }else {
                            System.out.println("您输入的价格低于上次报价的最小值"+min+",请重新输入:");
                        }
                    }else {
                        System.out.println("您估低价格了");
                        min = num;
                    }
                }
            }catch(InputMismatchException e) {
                System.out.println("您输入的价格式不匹配,请重新输入:");
                scanner.nextLine();
            }
        }
        scanner.close();
        System.out.println("恭喜您已经猜中价格!价格为:"+num);
    }
}