Java-----基础编程练习题

1、打印5位数中的所有回文数,每行打印10个数。最后统计一下一共有多少个5位回文数。

注:回文数即正反读都是一个数,5位数的话,只要个位与万位相同,十位与千位相同就是一个回文数。

public class Test1 {
	
	public static void main(String[] args) {
		for (int k = 1; k < 1000; k++) {
			String ss = "";
			int cc = 0;
			for (int i = 1; i <= k / 2; i++) {
				if (k % i == 0) {
					cc += i;
					ss += i + "+";
				}
			}
			if (k == cc) {
				ss=ss.substring(0,ss.length()-1);
				System.out.println(k + "是完数!" + ss);
			}

		}
	}
}

2、根据键盘录入的数值1、2、3、4,…7输出对应的星期一、星期二、星期三…星期日

import java.util.Scanner;
public class Test2 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入数字:");
		int kk = 1;
		while (true) {
			String ss = sc.nextLine();
			kk = Integer.parseInt(ss);
			if (kk < 1 || kk > 7) {
				System.out.println("输入数据不合法~");
			} else
				break;
		}
		String tt="一二三四五六天";
		String ss="星期"+tt.charAt(kk-1);
		System.out.println(ss);
			}
		
	}

3、键盘录入一个学生成绩(用int表示),自动输出该同学的成绩评级。学生的分数取值范围[0,100]

分数大于等于90的,评级"优秀";

分数大于等于80,小于90的,评级"良好";

分数大于等于70,小于80的,评级"中等";

分数大于等于60,小于70的,评级"及格";

分数小于60的,评级"不及格";

import java.util.Scanner;
public class Test3 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("请输入成绩:");
		Scanner sc=new Scanner(System.in);
		int a=0;
		while(true) {
			a=sc.nextInt();
			if(a<0||a>100) {
				System.out.println("输入错误,请重新输入:");
				continue;
		}else {
			if(a>=90) {
				System.out.println("优秀");
				break;
			}
			if(a>=80) {
				System.out.println("良好");
				break;
			}
			if(a>=70) {
				System.out.println("中等");
				break;
			}
			if(a>=60) {
				System.out.println("及格");
				break;
			}
			if(a<60) {
				System.out.println("不及格");
				break;
			}
		}sc.close();
	}
}
}

4、输出杨辉三角形,要求,根据键盘录入的行数,决定等腰三角形的行数。

import java.util.Scanner;

public class Test4 {

	public static void main(String[] args) {
		int k=0;;
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入行号:");
		while(true) {
			k=sc.nextInt();
			if(k<1)
				System.out.println("输入的数据不合法!");
			else
				for(int i=1;i<=k;i++) {
					for(int m=1;m<=k-i;m++)
						System.out.print(" ");
					for(int m=1;m<=i*2-1;m++)
						System.out.print("*");
					System.out.println();
				}			
		}
	}
}

5、求完数。一个数如果恰好等于它的所有真因子(即除了自身外的所有因数)之和,这个数就称为"完数"。请编程求出1000 以内的所有完数。

public class Test5 {
	// 28
	public static void main(String[] args) {
		for (int k = 1; k < 1000; k++) {
			String ss = "";
			int cc = 0;
			for (int i = 1; i <= k / 2; i++) {
				if (k % i == 0) {
					cc += i;
					ss += i + "+";
				}
			}
			if (k == cc) {
				ss=ss.substring(0,ss.length()-1);
				System.out.println(k + "是完数!" + ss);
			}

		}
	}
}

6、有1、2、3、4一共四个数字,能组成多少个不相等且无重复数字的三位数?都是多少?

注:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的就 可以了。

public class Test6 {
public static void main(String[] args) {
	int cc=0;
	String ss="";
	int sum=0;
	for(int i=1;i<=4;i++) {
		for(int k=1;k<=4;k++) {
			for(int m=1;m<=4;m++) {
				if(i!=k && k!=m && m!=i) {
					System.out.print(i+""+k+""+m+"\t");
					ss+=(i+""+k+""+m+"+");
					sum+=(i*100+k*10+m);
					cc++;
					if(cc%3==0)
						System.out.println();
				}
			}
		}
	}
	ss=ss.substring(0,ss.length()-1)+"="+sum;
	System.out.println(ss);
}
}

7、键盘录入一个正整数,请求:1.它是几位数?2.逆序打印出各位数字。

import java.util.Scanner;

public class Test7 {

	public static void main(String[] args) {
		
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入一串数字:");
		long x=sc.nextLong();
		String s=Long.toString(x);
		char[]ch=s.toCharArray();
		int y=ch.length;
		System.out.println(x+"是一个"+y+"位数");
		System.out.println("逆序输出结果为:");
		for(int i=ch.length-1;i>=0;i--) {
		System.out.print(ch[i]+",");
		}		
	}

}

8、有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13。求出这个数列的前20项之和。

注:答案是32.66026079864164

public class Test8 {
public static void main(String[] args) {
	int n1=2,n2=3;
	int n3=1,n4=2;
	int n=0;
	int m=0;
	double sum=1.*n1/n3+1.*n2/n4;
	for(int i=3;i<21;i++) {
		n=n1+n2;
		m=n3+n4;
		System.out.println(n+"/"+m);
		sum+=1.*n/m;
		n1=n2;
		n3=n4;
		n2=n;
		n4=m;
	}
	System.out.println(sum);
}
}

9、一个整数,它加上100或者268后都是一个完全平方数,请问在1万以内,这样的数有几个,分别是多少?

public class Test9 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub		
		for (int k = 1; k < 10000; k++) {	      
		      int k1=k+100;
		      boolean bb1=false;
		      int dd = (int) Math.sqrt(k1);
		      if (dd * dd == k1) {
		        bb1=true;		        
		      }     
		      int k2=k+268;
		      dd = (int) Math.sqrt(k2);
		      boolean bb2=false;
		      if (dd * dd == k2) {
		        bb2=true;		        
		      }
		      if(bb1||bb2) {
		        System.out.print(k);		  		        			        
		      }
		    }		
	}
}

10、提示用户输入三角形的边a、b、c,范围必须在 [1,100) 之间,判断三角形的类型:1.非三角形;2. 等边三角形;3.直角三角形;4.等腰三角形;5.普通三角形

import java.util.Scanner;

public class Test10 {
	public static void main(String[] args) {
		int a = 3, b = 3, c = 3;
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入第一个边长:");
		while(true) {
			a=sc.nextInt();
			if(a>=1 && a<100)
				break;
			else
				System.out.println("输入的数据不合法!");
		}
		System.out.println("请输入第二个边长:");
		while(true) {
			b=sc.nextInt();
			if(b>=1 && b<100)
				break;
			else
				System.out.println("输入的数据不合法!");
		}
		System.out.println("请输入第三个边长:");
		while(true) {
			c=sc.nextInt();
			if(c>=1 && c<100)
				break;
			else
				System.out.println("输入的数据不合法!");
		}
		boolean saoJiao = (a + b > c) && (a + c > b) && (b + c > a);
		if (saoJiao) {
			if (a == b && b == c) {
				System.out.println("等边三角形");
			} else if (a == b || b == c || a == c) {
				System.out.println("等腰三角形");
			} else if (a * a + b * b == c * c || a * a + c * c == b * b || b * b + c * c == a * a) {
				System.out.println("直角三角形");
			} else
				System.out.println("普通三角型");
		} else {
			System.out.println("不是三角型");
		}
	}
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值