JAVA经典算法50题(2)
时间:2026-01-19
时间:2026-01-19
int n) {
for (int i = 2; i <= n; i++) {
if (n % i == 0) {
System.out.print(i);
if(n!=i){
System.out.print("*");
}
fenjie(n/i);
}
}
System.exit(0); //退出程序
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入N的值:");
int N = in.nextInt();
System.out.print( "分解质因数:" + N +"=");
new Demo04().fenjie(N);
}
}
【程序5】 题目:利用条件运算符的嵌套来完成此题:学习成绩=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
1.程序分析:(a>b)?a:b这是条件运算符的基本例子。
import java.util.Scanner;
public class Demo05 {
public static void main(String[] args) {
System.out.println("请输入N的值:");
Scanner in = new Scanner(System.in);
int N = in.nextInt();
System.out.println(N >= 90 ?"A": (N >= 60 ? "B":"C"));
}
}
【程序6】 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:利用辗除法。
import java.util.Scanner;
public class Demo06 {
public static void main(String[] args){
int a,b,m,n;
Scanner in=new Scanner(System.in);
System.out.println("请输入一个正整数:");
a=in.nextInt();
System.out.println("再输入一个正整数:");
b=in.nextInt();
commonDivisor use=new commonDivisor();
m=monDivisor(a,b);
n=a*b/m;
System.out.println("最大公约数:"+m);
System.out.println("最小公倍数:"+n);
}
}
class commonDivisor{
public int commonDivisor(int x,int y){
if(x<y){
int t=x;
x=y;
y=t;
}
while(y!=0){
if(x==y)return x;
else{
int k=x%y;
x=y;
y=k;
}
}
return x;
}
}
【程序7】 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
1.程序分析:利用for循环语句,if条件语句。
import java.util.Scanner;
public class Demo07 {
public static void main(String[] args){
System.out.println("请输入一个字符串:");
Scanner in=new Scanner(System.in);
String str=in.nextLine();
char[] ch=str.toCharArray();
count use=new count();
use.count(ch);
}
}
class count{
int digital,character,blank,other;
public void count(char[] arr){
for(int i=0;i<arr.length;i++){
if(arr[i]>='0'&&arr[i]<='9'){
digital++;
}else if((arr[i]>='a'&&arr[i]<='z')||(arr[i]>='A'&&arr[i]<='Z')){
character++;
}else if(arr[i]==' '){
blank++;
}else{
other++;
}
}
System.out.println("数字个数:"+digital);
System.out.println("英文字母个数:"+character);
System.out.println("空格个数:"+blank);
System.out.
println("其他字符个数:"+other);
}
}
【程序8】 题目:求s = a + aa + aaa + aaaa + aa...a的值,其中a是一个数字。例如2 + 22 + 222 + 2222 + 22222(此时共有5个数相加),几个