函数:实现特定功能的一段代码,可反复使用。
附:Java基础知识框架思维导图
函数练习题1
- 写一个函数add,接收两个整数作为参数,返回这两个整数的和。
- 写一个函数,接收一个整数,输出这个整数的所有因子。
- 写一个函数,接收一个整数n,输出1+2+3+…+n的和
- 写一个函数,接收一个整数n,输出n个HelloWorld。
- 写一个函数,接收一个整数,输出这个整数是几位数。
- 求一个三位数,该三位数等于其每位数字的阶乘之和
- 如果整数A的全部因子(包括1,不包括A本身)之和等于B,且整数B的全部因子
(包括1,不包括B本身)之和等于A,则称整数A\B是一对亲密数。求3000以内的全部亲密数。 - 验证哥德巴赫猜想:任何大于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;
}
}