Java学习记录Day21
1、编写一个方法,求整数n的阶乘,例如5的阶乘是12345
思考:这个方法应该起什么名字,这个方法的形参是什么,方法的返回值类型是什么。
方法名为printFactorial,意思为输出阶乘,形参类型是整型,返回值类型也是整型。
- import java.util.Scanner;
- public class Work01 {
- public static void main(String[] args) {
- // 1、编写一个方法,求整数n的阶乘,例如5的阶乘是1*2*3*4*5
- // 思考:这个方法应该起什么名字,这个方法的形参是什么,方法的返回值类型是什么。
- }
- public static int printFactorial(){
- Scanner input=new Scanner(System.in);
- System.out.print("请输入一个数字:");
- int n=input.nextInt();
- int fact=1;
- for(int i=1;i<=n;i++){
- fact*=i;
- }
- return fact;
- }
- }
2、编写一个方法,输出大于某个正整数n的最小的质数。
思考:这个方法应该起什么名字,这个方法的形参是什么,方法的返回值类型是什么。
方法名为minPrime,意思是最小的质数,形参类型为int类型,返回值也是int类型。
(1)、首先思考现实生活中如何判断质数,再思考如何求出某个正整数n的最小的质数.
从n+1开始判断,直到符合条件的最小质数出现,就输出这个最小质数。
(2)、是否需要循环嵌套?如果需要,内循环的循环体是什么内容?
外循环的循环体又是什么内容?
内循环为判断是否为质数,外循环从n+1开始判断是否为质数,不是质数则加1。
(3)、首先在main主方法中编写:输入一个数,然后输出这个数是不是质数。
再分别写出n+1到无穷大的循环语句。
- Scanner input=new Scanner(System.in);
- System.out.print("请输入一个正整数:");
- int i=input.nextInt();
- for(int j=2;j<a;j++){
- if(a%j==0){
- // System.out.println(a+"不是质数");
- break;
- }
- }
判断是否为质数,除数只能从2开始自加。
- int n=1;
- int a=n+1;
- for(a;a>1;a++){
- }
(4)、先在main方法中完成方法体部分的设计。
- public static void main(String[] args) {
- // 2、编写一个方法,输出大于某个正整数n的最小的质数。
- //思考:这个方法应该起什么名字,这个方法的形参是什么,方法的返回值类型是什么。
- boolean number=true;
- while(number){
- Scanner input=new Scanner(System.in);
- System.out.print("请输入一个正整数:");
- int i=input.nextInt();
- int a=i+1;
- if(a>=4){
- boolean num=false;
- for(;i>0;a++){
- for(int j=2;j<a;j++){
- if(a%j==0){
- // System.out.println(a+"不是质数");
- break;
- }else if(j==(a-1)){
- if(i%j!=0){
- System.out.println("比"+i+"大的最小质数是"+a);
- num=true;
- }
- }
- }
- if(num==true){
- break;
- }
- }
- }else if(i==1){
- System.out.println("比"+i+"大的最小质数是2");
- }else if(i==2){
- System.out.println("比"+i+"大的最小质数是3");
- }else{
- System.out.println("请输入一个正确的正整数");
- }
- }
- }
(5)、修改方法名为public static int minPrime() {},最终结构为:
- public static void main(String[] args) {
- Scanner input=new Scanner(System.in);
- System.out.print("请输入一个正整数:");
- int i=input.nextInt();
- Work02Test.minPrime(i);
- }
- public static int minPrime(int i) {
- int a=i+1;
- if(a>=4){
- boolean num=false;
- for(;i>0;a++){
- for(int j=2;j<a;j++){
- if(a%j==0){
- // System.out.println(a+"不是质数");
- break;
- }else if(j==(a-1)){
- if(i%j!=0){
- System.out.println("比"+i+"大的最小质数是"+a);
- num=true;
- }
- }
- }
- if(num==true){
- break;
- }
- }
- }else if(i==1){
- System.out.println("比"+i+"大的最小质数是2");
- }else if(i==2){
- System.out.println("比"+i+"大的最小质数是3");
- }else{
- System.out.println("请输入一个正确的正整数");
- }
- return a;
- }
3、画出以下程序运行过程的内存图
- public class Test{
- public static void main(String[] args){
- int a = 100;
- int b = 200;
- int retValue = m1(a, b);
- System.out.println(retValue);
- }
- public static int m1(int x, int y){
- int k = x * 10;
- int m = y * 10;
- int result = m2(k, m);
- return result;
- }
- public static int m2(int c, int d){
- int e = c / 2;
- int f = d / 2;
- int i = e + f;
- return i;
- }
- }


雷达卡



京公网安备 11010802022788号







