java程序设计实用教程习题集答案 (java程序设计项目教程课本代码)

1.《回文素数消消乐》

如果这个数字即是回文又是素数,则它可以被消除。否则,它将不能被消除。比如:353是一个素数且是一个回文数,它能被消除121虽然是一个回文数但不是一个素数,它不能被消除 输入要求 输入一个整型n 输出要求 如果能被消除,则输出"Remove Successfully"否则输出"Ops" 输入

11121

输出

Remove Successfully​​​​​Ops

代码

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
           Scanner scanner=new Scanner(System.in);
        while(scanner.hasNext())
        {
            int a=scanner.nextInt();
            int i ,f=0;
            for(i=2;i<=a/2;i++)
            {
                if(a%i==0)
                {
                    f=1;
                }
            }
            if(f==0)
            {
                int p=0,t=a,u=0;
                while(a>0)
                {
                    p=p*10+a%10;
                    a=a/10;
                }
                if(t==p) {
                    u = 1;
                }
                if(u==1)
                {
                    System.out.println("Remove Successfully");
                }
                else
                {
                    System.out.println("Ops");
                }

            }
            else
            {
                System.out.println("Ops");
            }
        }
    }
}
12345678910111213141516171819202122232425262728293031323334353637383940414243

2…《密码检查》

要求密码内容 1)至少6位字符; 2)密码仅能有字母和数字,不能有其他字符; 3)密码至少包括1个数字;要求程序检查顺序 是否满足6位字符—>是否仅仅包含字母和数字---->是否包含1个数字当字符串顺序检查查出不符合条件时输出“NO”,后跟随原因(请看输出要求),如果满足所有条件,输出“YES” 输入要求 多组数据,每一组数据是一串长度不为0的字符串 输出要求 当不满足6位字符串条件输出“NO Password at least 6 digits”当不满足仅仅字母和数字条件输出 “NO Passwords can only consist of letters and numbers”当不满有一位数字条件输出 “NO Password is at least one number”满足所有条件 “YES” 输入

qwertyuiopqwe12qwer!@#$1230qwert123

输出

NO Password is at least one numberNO Password at least 6 digitsNO Passwords can only consist of letters and numbersYES

代码

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
           Scanner scanner=new Scanner(System.in);
        while(scanner.hasNext())
        {
            String a=scanner.next();
            int i ,f=0;
            if(a.length()<6)
            {
                System.out.println("NO Password at least 6 digits");
            }
            else {

                boolean flag=true;
                for(i=0;i<a.length();i++)
                {
                    if((a.charAt(i)>='0'&&a.charAt(i)<='9')||(a.charAt(i)>='a'&&a.charAt(i)<='z')
                            ||  (a.charAt(i)>='A'&&a.charAt(i)<='Z'))
                    {

                    }
                    else
                    {
                        flag=false;
                    }
                }
                if(flag==false)
                {
                    System.out.println("NO Passwords can only consist of letters and numbers");
                }
                else {
                    int p=0;
                    for(i=0;i<a.length();i++)
                    {
                        if(a.charAt(i)>='0'&&a.charAt(i)<='9')
                        {
                            p=1;
                        }
                    }
                    if(p==1)
                    {
                        System.out.println("YES");
                    }
                    else {
                        System.out.println("NO Password is at least one number");
                    }

                }
            }
        }

    }
}
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354

3.《变态高数课》

2019年10月30号这天,软件二班的同学们上了一节完全听不懂的高数课,因为老师讲了太多东西了,例如什么麦克劳林公式,泰勒定理。。。

很多同学都吐槽说听不懂,通过小编我进行了统计和与老师的协商,老师打算再上3次这个课程,来加深同学们的印象,如果3次课之后有同学还是听不懂的话,就得自行去外面补课。现在就是要你来统计出学神,学霸与补课的人数。

(由于老师比较变态,所以不喜欢四舍五入进制,老师所运用的是五舍六入)。每次学会的人数为n * a + 10, a初始为0.1,一共上三节课。

每次同学们的懂得率a会增加10%。学神即为第一次通过的,学霸是第二次通过的,补课的是第三次都没有通过的。 输入要求 每次输入一个整数n表示一个班的人数。

输出要求 输出学神人数,学霸人数与需要补课的人数。

如果输入过大或者过小则输出(人数为50<=n<=120)(输入错误,不可能是这个人数) 输入

5012048

输出

学神人数为:15学霸人数为:17需要补课的人数为:3学神人数为:22学霸人数为:30需要补课的人数为:38输入错误,不可能是这个人数

代码

import java.util.Scanner;
public class demo {
 	public static void main(String[] args) {
  		Scanner input = new Scanner(System.in);
  	while(input.hasNextInt()) {
  		int n =input.nextInt();
  		double first=0,second=0,third=0,a=0.1;
  	if(n>120 || n<50) {
   		System.out.println("输入错误,不可能是这个人数");
   		continue;
  }
  int q,w,e;
  	first = n*a+10;
  if(first*10%10>=6) {
   	first = first*10/10+1;
  }
  else {
   	first = first*10/10;
  }
  	q=(int)first;
  	System.out.println("学神人数为:"+q);
  	a=a+0.1;
  	second = n-q;
  	second =  second*a+10;
  if(second*10%10>=6) {
   	second = second*10/10+1;
  }
  else {
   	second = second*10/10;
  }
  	w=(int)second;
  	System.out.println("学霸人数为:"+w);
  	a=a+0.1;
  	third= n-q-w;
  	third=third*a + 10;
  if(third*10%10>=6) {
   	third = third*10/10+1;
  }
  else {
   	third = third*10/10;
  }
  	e=(int)third;
  	int s=n;
  	s = s-q-w-e;
  	System.out.println("需要补课的人数为:"+s);
  	}
  	input.close();
 	} 
}
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849

4.《亲和数》古希腊数学家毕达哥拉斯在自然数研究中发现,220的所有真约数(即不是自身的约数)之和为:

1+2+4+5+10+11+20+22+44+55+110=284。

而284的所有除去本身的公因数为1、2、4、71、 142,加起来恰好为220。人们对这样的数感到很惊奇,并称之为亲和数。一般地讲,如果两个数中任何一个数都是另一个数的真约数之和,则这两个数就是亲和数。

编写一个程序,判断给定的两个数是否是亲和数 输入要求 每次输入一个实例,包含两个整数A,B; 其中 0 <= A,B <= 600000 ;

输出要求 对于每个测试实例,如果A和B是亲和数的话输出YES,否则输出NO 输入

220 284100 200

输出

YESNO

代码

import java.util.Scanner;
public class Main {
     public static void main(String[] args) {
           Scanner scanner=new Scanner(System.in);

        while(scanner.hasNext())
        {
            int a=scanner.nextInt();
            int b=scanner.nextInt();
            int i ,j,t=0,f=0,l=a,m=b;
            for(i=1;i<a;i++)
            {
                if(a%i==0)
                {
                    t=t+i;
                }
            }
            for(i=1;i<b;i++)
            {
                if(b%i==0)
                {
                    f=f+i;
                }
            }
            if((t==b)&&(f==a))
            {
                System.out.println("YES");
            }
            else
            {
                System.out.println("NO");
            }
        }
    }
}