1,编写程序,判断给定的某个年份是否是闰年。
闰年的判断规则如下:
(1)若某个年份能被 4 整除但不能被 100 整除,则是闰年。
(2)若某个年份能被 400 整除,则也是闰年。
import java.util.Scanner;
class Bissextile{
public static void main(String[] arge){
System.out.print("请输入年份");
//定义输入的年份名字为“year”
int year;
Scanner scanner = new Scanner(System.in);
year = scanner.nextInt();
if (year<0||year>3000){
System.out.println("年份有误,程序退出!");
System.exit(0);
}
if ((year%4==0)&&(year%100!=0)||(year%400==0))
System.out.println(year+" is bissextile");
System.out.println(year+" is not bissextile ");
else
}
}
2,给定一个百分制的分数,输出相应的等级。
90 分以上
80~89
70~79
60~69
60 分以下
A 级
B 级
C 级
D 级
E 级
import java.util.Scanner;
class Mark{
public static void main(String[] args){
System.out.println("请输入一个分数");
//定义输入的分数为“mark”,且分数会有小数
double mark;
Scanner scanner = new Scanner(System.in);
mark = scanner.nextDouble();
//判断是否有输入错误。
if(mark<0||mark>100){
System.out.println("输入有误! ");
System.exit(0);
}
/*判断分数的等级
90 分以上者 A 级, 80~89 分者 B 级,70~79 分者 C 级, 60~69 者 D
级,60 分以下 E 级 */
if (mark>=90) System.out.println("this mark is grade \'A\' ");
else if (mark>=80) System.out.println("this mark is grade \'B\' ");
else if (mark>=70) System.out.println("this mark is grade \'C\' ");
else if (mark>=60) System.out.println("this mark is grade \'D\' ");
else System.out.println("this mark is grade \'E\' ");
}
}
}
}
3,编写程序求 1+3+5+7+……+99 的和值。
class he{
public static void main(String[] args){
//初始值 1,以后再+2 递增上去
int number = 1;
int sum = 0;
for ( ; number <100; number+=2 ){ sum += number; }
System.out.println("1+3+5+7+……+99= " +sum);
4、利用 for 循环打印 9*9 表?
1*1=1
1*2=2
1*3=3
1*4=4
1*5=5
1*6=6
1*7=7
1*8=8
1*9=9
9*9=81
2*2=4
2*3=6
2*4=8
2*5=10
2*6=12
2*7=14
2*8=16
2*9=18
3*3=9
3*4=12
3*5=15
3*6=18
3*7=21
3*8=24
4*4=16
4*5=20
4*6=24
4*7=28
4*8=32
3*9=27
4*9=36
5*5=25
5*6=30
5*7=35
5*8=40
6*6=36
6*7=42 7*7=49
6*8=48 7*8=56
5*9=45
6*9=54
//循环嵌套,打印九九乘法表
public class NineNine{
public static void main(String[]args){
8*8=64
7*9=63
8*9=72
for(int k=1;k<10;k++) {
//老师的做法,判断语句里的 k<=j,省去下
if (k>j) break;
System.out.print(" "+k+"X"+j+"="+j*k);
//此处用 continue 也可以,只是效率低一点
System.out.println();
for (int j=1;j<10;j++){
列的 if 语句。
}
System.out.println();
}
}
}
6、输出所有的水仙花数,把谓水仙花数是指一个数 3 位数,其各各位数字立方
和等于其本身,
例如: 153 = 1*1*1 + 3*3*3 + 5*5*5
class DafodilNumber{
public static void main(String[] args){
System.out.println("以下是所有的水仙花数");
int number = 100;
// 由于水仙花数是三位数,故由 100 开始算起
int i, j, k;
for (int sum; number<1000; number++){
// i
j
k 分别为 number 的百位、十位、个位
j=(number-i*100)/10;
i=number/100;
sum=i*i*i+j*j*j+k*k*k;
if (sum==number) System.out.println(number+" is a dafodil number! ");
}
k=number-i*100-j*10;
}
}
7、求 a+aa+aaa+.......+aaaaaaaaa=?
其中 a 为 1 至 9 之中的一个数,项数也要可以指定。
import java.util.Scanner;
class Multinomial{
public static void main(String[] args){
a;
//定义输入的 a
int
int howMany;
Scanner scanner = new Scanner(System.in);
//定义最后的一项有多少个数字
System.out.println("请输入一个 1~9 的 a 值");
a = scanner.nextInt();
System.out.println("请问要相加多少项?");
howMany = scanner.nextInt();
int sum=0;
int a1=a;
for (int i=1; i<=howMany; i++){
// 用来保存 a 的初始值
sum+= a;
a = 10*a +a1;
// 这表示 a 的下一项
// 每次 a 的下一项都等于前一项*10,再加上刚输入时的 a ;注意,
这时的 a 已经变化了。
}
System.out.println("sum="+sum);
//初始的分子 (fenZi)=2,分母(fenMu)
//下一项的分母 = 上一项的分子
//下一项的分子 = 上一项的分子加分
}
}
=1
母
}
}
8、求 2/1+3/2+5/3+8/5+13/8.....前 20 项之和?
class Sum{
public static void main(Sting[] args){
double sum=0;
double fenZi=2.0, fenMu=1.0;
for(int i=1; i<=20; i++){
sum += fenZi / fenMu ;
fenMu = fenZi;
fenZi += fenMu;
}
System.out.println("sum= "sum);
9、利用程序输出如下图形:
*
* * *
* * * * *
* * * * * * *
* * * * *
* * *
*
class Asterisk{
}
}
}
public static void main(String[] args){
for (int i=1; i<=13; i+=2){
for(int j=1; j<=i && i+j<= 14; j++){System.out.print("* ");}
System.out.println();
// 换行
10、计算圆周率
PI=4-4/3+4/5-4/7.......
打印出第一个大于 3.1415 小于 3.1416 的值
class Pi {
public static void main(String[] args){
//定义初始值
double pi =0;
double fenZi = 4;
double fenMu = 1;
次递增 2
只是精确度小些
//分子为 4
//第一个 4,可看作分母为 1 的分式,以后的分母每
for (int i = 0; i < 1000000000; i++){ //运行老久,减少循环次数会快很多,
pi += (fenZi/fenMu) ;
fenZi *= -1.0;
fenMu += 2.0;
}
System.out.println(pi);
//每项分子的变化是+4,-4,+4,-4 ....
//分母的变化是 1,3,5,7, .... 每项递加 2
}
}
输出结果为 pi = 3.1415926525880504,应该不精确
11、输入一个数据 n,计算斐波那契数列(Fibonacci)的第 n 个值
1
2
1
34
规律:一个数等于前两个数之和
13
21
3
5
8
//计算斐波那契数列(Fibonacci)的第 n 个值
public class Fibonacci{
public static void main(String args[]){
int n = Integer.parseInt(args[0]);
int n1 = 1;//第一个数
int n2 = 1;//第二个数
System.out.println("参数错误!");
return;
int sum = 0;//和
if(n<=0){
}
if(n<=2){
sum = 1;
}else{
for(int i=3;i<=n;i++){
sum = n1+n2;
n1 = n2;
n2 = sum;
}
}
System.out.println(sum);
}
}
//计算斐波那契数列(Fibonacci)的第 n 个值
//并把整个数列打印出来
public class FibonacciPrint{
public static void main(String args[]){
int n = Integer.parseInt(args[0]);
FibonacciPrint t = new FibonacciPrint();
for(int i=1;i<=n;i++){
t.print(i);
}
}
public void print(int n){
int n1 = 1;//第一个数
int n2 = 1;//第二个数
int sum = 0;//和
if(n<=0){
System.out.println("参数错误!");
return;
}
if(n<=2){
sum = 1;
}else{
for(int i=3;i<=n;i++){
sum = n1+n2;
n1 = n2;
n2 = sum;
}
}
System.out.println(sum);
}
}
12、求 1-1/3+1/5-1/7+1/9......的值。
a,求出前 50 项和值。
b,求出最后一项绝对值小于 1e-5 的和值。
public class xunhuan {
public static void main(String[] args) {
double fenzi = 1;
double fenmu = 1;
double sum = 0;
for(int i=1;i<50;i++)
{
sum += (fenzi/fenmu);
fenzi *= -1;
fenmu = 2*i+1;
}
System.out.println(sum);
}
}
13、在屏幕上打印出 n 行的金字塔图案,如,若 n=5,则图案如下:
*
***
*****
*******
*********
//打印金字塔图案
public class PrintStar{
public static void main(String args[]){
int col = Integer.parseInt(args[0]);
for(int i=1;i<=col;i++){//i 表示行数
//打印空格
for(int k=0;k
System.out.print("*");
}
System.out.println();
}
}
}
14.歌德巴赫猜想,任何一个大于六的偶数可以拆分成两个质数的和
打印出所有的可能
//任何一个大于六的偶数可以拆分成两个质数的和
//打印出所有的可能
public class Gedebahe{
public static void main(String args[]){
int num = Integer.parseInt(args[0]);
if(num<=6){
System.out.println("参数错误!");
return;
}
if(num%2!=0){
System.out.println("参数错误!");
return;
}
Gedebahe g = new Gedebahe();
//1 不是质数,2 是偶数,因此从 3 开始循环
for(int i=3;i<=num/2;i++){
if(i%2==0){//如果为偶数,退出本次循环
continue;
}
//当 i 与 num-i 都为质数时,满足条件,打印
if(g.isPrime(i) && g.isPrime(num-i)){
System.out.println(i+" + "+(num-i)+" = "+num);
}
}
}
15. 定义一个 int 型的一维数组,包含 10 个元素,分别赋一些随机整数,然后求
出所有元素的最大值,
最小值,平均值,和值,并输出出来。
class ArrayNumber{
public static void main(String[] args){
int[] arrayNumber;