Java 基础中的基础算法题
1.输入一个数字,判断其是否为水仙花数。
public static void main(String[] args) { //接受控制台输入信息 Scanner scanner = new Scanner(System.in); System.out.println("请输入一个数"); //获取控制台输入的数字 int number = scanner.nextInt(); //取的百位数 int bai = number / 100; //取得十位数 int shi = (number / 10) % 10; //取得个位数 int ge = number % 10; if (Math.pow(bai, 3) + Math.pow(shi, 3) + Math.pow(ge, 3) != number) { System.out.println("这个数不是水仙花数"); } else { System.out.println("这个数是水仙花数"); } }
2.输入n:求1+3+5+7+…n的累加和(n为奇数)
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入您想计算的累加和"); int number = scanner.nextInt(); int num = getSum(number); System.out.println("1--" + number + "累加和为:" + num); } private static int getSum(int number) { if (number == 1) { return number; } return number + getSum(number - 1); }
- 九九乘法表
public static void main(String[] args) { System.out.println("乘法口诀表"); for (int i = 0; i < 9; i++) { for (int j=1; j<=i ;j++){ System.out.print(j+"*"+j+"="+j*i+" "); } System.out.println(); } }
- 输入年份判断是否为闰年
System.out.println("请输入你要查询的年份"); Scanner scanner = new Scanner(System.in); int year = scanner.nextInt(); Calendar calendar = Calendar.getInstance(); //设置年份、月份 calendar.set(year, 2, 1); calendar.add(calendar.DATE, -1); int day = calendar.get(calendar.DATE); if (day == 29) { System.out.println("你输入的年" + calendar.get(calendar.YEAR) + "份闰年"); } else { System.out.println("你输入" + calendar.get(calendar.YEAR) + "年份是平年"); }
5.猜数游戏
System.out.println("请输入0-100的整数"); Scanner scanner = new Scanner(System.in); Random random = new Random(); int guess = random.nextInt(100) + 1; for (int i = 0; i < 100; i++) { int key = scanner.nextInt(); if (key == guess) { System.out.println("恭喜你答对了"); break; }else if (key>guess){ System.out.println("您猜的数字大了"); }else { System.out.println("您猜的数字小了"); } System.out.println("您还有"+(4-i)+"次机会"); if (i==5){ System.out.println("很遗憾 您没机会了 正确的数字为:"+guess); break; } }
6.十进制转换为二进制
public static void main(String[] args) { int a = 123;//定义一个变量并赋给他一个十进制的值 int remainder;//定义一个变量用于存储余数 int sum = 0;//定义一个变量用于存放和 int k = 1;//定义一个变量控制位数 while(a != 0){ remainder = a % 2;//对目标数字求余 a /= 2;//对目标数字求商 sum = sum + remainder * k;//求和 k *= 10;//改变位数 } System.out.println("10进制的123转换为2进制结果为:" + sum ); }