一:题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
[java] view plain copy print?
public class Example6 {
public static void main(String args[]){
gcdlcm a =new gcdlcm();
System.out.println("兩數的最大公約數是:"+a.gcd(10, 16));
System.out.println("兩數的最小公倍數是:"+a.lcm(16, 10));
}
}
class gcdlcm{
int gcd(int m,int n){
if(m<n){ //這個判斷是爲了將大數放在前面
int temp=n;
n=m;
m=temp;
}
if(m%n==0){
return n;
}
else{
m%=n;
return gcd(m,n);
//這裡也可以寫成gcd(n,m),就省掉了前面的判斷了,會快一點
}
}
int lcm(int m,int n){
int i=1;
if(m<n){ //這個判斷是爲了將大數放在前面
int temp=n;
n=m;
m=temp;
}
int lcm=m;
while(lcm%n!=0){
lcm=m*i;
i++;
}
return lcm;
}
}
三:题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
[java] view plain copy print?
import java.util.Scanner;
public class Example {
public static void main(String[] args) {
// TODO Auto-generated method stub
int abcCount=0;//英文字母个数
int spaceCount=0;//空格键个数
int numCount=0;//数字个数
int otherCount=0;//其他字符个数
Scanner scan=new Scanner(System.in);
String str=scan.nextLine();
char[] ch = str.toCharArray();
for(int i=0;i<ch.length;i++){
if(Character.isLetter(ch[i])){
//判断是否字母
abcCount++;
}
else if(Character.isDigit(ch[i])){
//判断是否数字
numCount++;
}
else if(Character.isSpaceChar(ch[i])){
//判断是否空格键
spaceCount++;
}
else{
//以上都不是则认为是其他字符
otherCount++;
}
}
System.out.println("字母个数:"+abcCount);
System.out.println("数字个数:"+numCount);
System.out.println("空格个数:"+spaceCount);
System.out.println("其他字符个数:"+otherCount);
}
}
三:题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
[java] view plain copy print?
import java.util.*;
public class Example4{
public static void main(String[] args){
int x;
Scanner in = new Scanner(System.in);//定义从键盘输入
System.out.print("请输入一个正整数:");//提示
x = in.nextInt(); //将从键盘输入的数赋值给x
new PrimeSplit(x); //匿名初始化一个对象,还有参数的构造函数
}
}
class PrimeSplit{
int k = 2; //将最小的质数赋值给k
public PrimeSplit(int x){ //小于等于1的数不可以分解
if(x<=1){
System.out.println(x+"是无效的被分解数");
}
else if(x==2){
System.out.println(x+"分解后的质因数为: 1*"+x); //如果输入的是最小质数2,
}else {
System.out.print(x+"分解后的质因数为: 1"); //1是所有的正整数的质数
while(k<=x){ //输入的数可以被k整除
if(x%k==0){
System.out.print("*"+k); //将k添加到结果中
x = x/k;//除以最小质数后重新循环
}
else{
k++;
}
}
}
}
}
[java] view plain copy print?
public class Example6 {
public static void main(String args[]){
gcdlcm a =new gcdlcm();
System.out.println("兩數的最大公約數是:"+a.gcd(10, 16));
System.out.println("兩數的最小公倍數是:"+a.lcm(16, 10));
}
}
class gcdlcm{
int gcd(int m,int n){
if(m<n){ //這個判斷是爲了將大數放在前面
int temp=n;
n=m;
m=temp;
}
if(m%n==0){
return n;
}
else{
m%=n;
return gcd(m,n);
//這裡也可以寫成gcd(n,m),就省掉了前面的判斷了,會快一點
}
}
int lcm(int m,int n){
int i=1;
if(m<n){ //這個判斷是爲了將大數放在前面
int temp=n;
n=m;
m=temp;
}
int lcm=m;
while(lcm%n!=0){
lcm=m*i;
i++;
}
return lcm;
}
}
三:题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
[java] view plain copy print?
import java.util.Scanner;
public class Example {
public static void main(String[] args) {
// TODO Auto-generated method stub
int abcCount=0;//英文字母个数
int spaceCount=0;//空格键个数
int numCount=0;//数字个数
int otherCount=0;//其他字符个数
Scanner scan=new Scanner(System.in);
String str=scan.nextLine();
char[] ch = str.toCharArray();
for(int i=0;i<ch.length;i++){
if(Character.isLetter(ch[i])){
//判断是否字母
abcCount++;
}
else if(Character.isDigit(ch[i])){
//判断是否数字
numCount++;
}
else if(Character.isSpaceChar(ch[i])){
//判断是否空格键
spaceCount++;
}
else{
//以上都不是则认为是其他字符
otherCount++;
}
}
System.out.println("字母个数:"+abcCount);
System.out.println("数字个数:"+numCount);
System.out.println("空格个数:"+spaceCount);
System.out.println("其他字符个数:"+otherCount);
}
}
三:题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
[java] view plain copy print?
import java.util.*;
public class Example4{
public static void main(String[] args){
int x;
Scanner in = new Scanner(System.in);//定义从键盘输入
System.out.print("请输入一个正整数:");//提示
x = in.nextInt(); //将从键盘输入的数赋值给x
new PrimeSplit(x); //匿名初始化一个对象,还有参数的构造函数
}
}
class PrimeSplit{
int k = 2; //将最小的质数赋值给k
public PrimeSplit(int x){ //小于等于1的数不可以分解
if(x<=1){
System.out.println(x+"是无效的被分解数");
}
else if(x==2){
System.out.println(x+"分解后的质因数为: 1*"+x); //如果输入的是最小质数2,
}else {
System.out.print(x+"分解后的质因数为: 1"); //1是所有的正整数的质数
while(k<=x){ //输入的数可以被k整除
if(x%k==0){
System.out.print("*"+k); //将k添加到结果中
x = x/k;//除以最小质数后重新循环
}
else{
k++;
}
}
}
}
}