Java函数练习题1

函数:实现特定功能的一段代码,可反复使用。
附:Java基础知识框架思维导图

函数练习题1

  1. 写一个函数add,接收两个整数作为参数,返回这两个整数的和。
  2. 写一个函数,接收一个整数,输出这个整数的所有因子。
  3. 写一个函数,接收一个整数n,输出1+2+3+…+n的和
  4. 写一个函数,接收一个整数n,输出n个HelloWorld。
  5. 写一个函数,接收一个整数,输出这个整数是几位数。
  6. 求一个三位数,该三位数等于其每位数字的阶乘之和
  7. 如果整数A的全部因子(包括1,不包括A本身)之和等于B,且整数B的全部因子
    (包括1,不包括B本身)之和等于A,则称整数A\B是一对亲密数。求3000以内的全部亲密数。
  8. 验证哥德巴赫猜想:任何大于6的偶数,都能分解成两个质数的和。要求输入一个整数,输出这个数能被分解为哪两个质数的和
1.写一个函数add,接收两个整数作为参数,返回这两个整数的和。
//1.写一个函数add,接收两个整数作为参数,返回这两个整数的和。
import java.util.Scanner;
public class test1{
	public static void main(String[] args){
		System.out.println("请输入第一个数:");
		int a=new Scanner(System.in).nextInt();
		System.out.println("请输入第二个数:");
		int b=new Scanner(System.in).nextInt();
		System.out.println("两个整数的和为:"+add(a,b));
	}
	public static int add(int a,int b){
		return a+b;
	}
}
2.写一个函数,接收一个整数,输出这个整数的所有因子。
//2.写一个函数,接收一个整数,输出这个整数的所有因子。
import java.util.Scanner;
public class test2{
	public static void main(String[] args){
		System.out.println("请输入一个整数:");
		int a=new Scanner(System.in).nextInt();
		getFactor(a);
	}
	public static void getFactor(int m){
		for(int i=1;i<=m;i++){//若i<=m/2,则输出不包括其本身
			if(m%i==0){
				System.out.print(i+"\t");
			}
		}
	}
}
3.写一个函数,接收一个整数n,输出1+2+3+...+n的和
//3.写一个函数,接收一个整数n,输出1+2+3+...+n的和。
import java.util.Scanner;
public class test3{
	public static void main(String[] args){
		System.out.println("请输入一个整数:");
		int n=new Scanner(System.in).nextInt();
		System.out.println("和为:"+add(n));
	}
	public static int add(int m){	
		int sum=0;
		for(int i=1;i<=m;i++){//若i<=m/2,则输出不包括其本身
			sum+=i;
		}
		return sum;
	}
}
4.写一个函数,接收一个整数n,输出n个HelloWorld。
//4.写一个函数,接收一个整数n,输出n个HelloWorld。
import java.util.Scanner;
public class test4{
	public static void main(String[] args){
		System.out.println("请输入一个整数:");
		int n=new Scanner(System.in).nextInt();
		getPrint(n);
	}
	public static void getPrint(int m){	
		for(int i=1;i<=m;i++){
			System.out.println("HelloWorld");
		}
	}
}
5.写一个函数,接收一个整数,输出这个整数是几位数。
//5.写一个函数,接收一个整数,输出这个整数是几位数。
import java.util.Scanner;
public class test5{
	public static void main(String[] args){
		System.out.println("请输入一个整数:");
		int n=new Scanner(System.in).nextInt();
		System.out.println("这个整数是"+getFa(n)+"位数");
	}
	public static int getFa(int m){	
		int count=0;
		while(m!=0){
			m=m/10;
			count++;
		}
		return count;
	}
}
6.求一个三位数,该三位数等于其每位数字的阶乘之和
//6.求一个三位数,该三位数等于其每位数字的阶乘之和。
public class test6{
	public static void main(String[] args){
		int a,b,c;
		for(int i=100;i<1000;i++){
			a=i/100;//百位
			b=i/10%10;//十位
			c=i%10;//个位
			if(i==fun(a)+fun(b)+fun(c)){
				System.out.println("三位数中每位数字的阶乘之和等于本身的数为:"+i);
			}	
		}
	}
	public static int fun(int m){
		int s=1;
		for(int i=m;i>=1;i--){
			s*=i;
		}
		return s;
	}		
}
7.如果整数A的全部因子(包括1,不包括A本身)之和等于B,且整数B的全部因子 (包括1,不包括B本身)之和等于A,则称整数A\B是一对亲密数。求3000以内的全部亲密数。
/*7.如果整数A的全部因子(包括1,不包括A本身)之和等于B,且整数B的全部因子
(包括1,不包括B本身)之和等于A,则称整数A\B是一对亲密数。求3000以内的全部亲密数。*/
//整数A的因子和sumA=B,sumB=A时,则称整数A\B是一对亲密数。
public class test7{
	public static void main(String[] args){
		for(int a=1;a<=3000;a++){
			  int b=sum(a);
			  if(sum(b)==a&&a<b){//a<b为排除a与b相等的情况
				 System.out.println(a+"\\"+b+"是一对亲密数");
			  }
		}
	}
	public static int sum(int m){
		int sum=0;
		for(int i=1;i<=m/2;i++){
			if(m%i==0){
				sum+=i;
			}
		}
		return sum;
	}		
}
8.验证哥德巴赫猜想:任何大于6的偶数,都能分解成两个质数的和。 要求输入一个整数,输出这个数能被分解为哪两个质数的和。
/*8.验证哥德巴赫猜想:任何大于6的偶数,都能分解成两个质数的和。
要求输入一个整数,输出这个数能被分解为哪两个质数的和*/
//1.两个质数小于输入的偶数
//2.循环找出小于偶数的所有质数
//3.另一个质数用偶数-第一个质数,再判断其是否为质数
import java.util.Scanner;
public class test8{
	public static void main(String[] args){
		System.out.println("请输入一个大于6的偶数:");
		int n=new Scanner(System.in).nextInt();
		if(n%2==0&&n>6){
			for(int i=2;i<=n/2;i++){
				if(ifPrime(i)&&ifPrime(n-i)){
					System.out.println(n+"="+i+"+"+(n-i));
				}
			}
		}
	}
	public static boolean ifPrime(int m){
		for(int i=2;i<m;i++){
			if(m%i==0){
				return false;
			}
		}
				return true;
	}		
}
发布了14 篇原创文章 · 获赞 20 · 访问量 2403

猜你喜欢

转载自blog.csdn.net/weixin_44255829/article/details/104254527