Java算法基础(一)
题目总览
1.计算10的阶乘
2.显示从100到1000以内的水仙花数
3.有一段楼梯,每次走5阶,最后剩4阶;每次走4阶,最后剩3阶;每次走3阶,最后剩2阶,每次走7阶,刚刚好。
求这段楼梯最少有多少阶。
4.求1 - 100以内的所有质数(嵌套循环)
5.从键盘上输入两个大于0的数,求两个数的最大公约数和最小公倍数。
6.已知:1900年的1月1日是星期一,从键盘上输入年月,从控制台打印月历。闰年的条件:
if(year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))
题目详解
- 计算10的阶乘。
思路分析:
- 首先,了解阶乘的计算方法,是当前字数与(当前数字-1)相乘得出来的。
- 本算法采用动态规划的思路与递归的方法。
- n! = n * (n - 1) !
代码如下:
int s = 1;
for (int i = 1;i <= 10;i++)
{
s *= i;
}
System.out.println(s);
}
- 显示从100到1000以内的水仙花数
思路分析:
- 水仙花数的定义:指一个数字,其各位数字立方和等于该数本身。例如:bai153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
- 解题的关键是,将这个数字的各个位数上的数字表示出来。
-
代码如下:
int a;
int b;
int c;
for(int i = 100;i < 1000;i++)
{
a = i / 100;//计算百位
b = (i / 10) % 10;//计算十位
c = i % 10;//计算各位
if((a*a*a+b*b*b+c*c*c) == i)
System.out.println(i);
}
- 有一段楼梯,每次走5阶,最后剩4阶;每次走4阶,最后剩3阶;每次走3阶,最后剩2阶,每次走7阶,刚刚好。
求这段楼梯最少有多少阶。
思路分析:
- 这段楼梯的阶数对5取余,结果为4。
- 这段楼梯的阶数对4取余,结果为3。
- 这段楼梯的阶数对3取余,结果为2。
- 这段楼梯的阶数对7取余,结果为0。
- 这段楼梯的阶数要同时满足以上条件,使用与逻辑表达式。
代码如下:
for(int i = 1;i <= 1000;i++)
{
if