函数

数学中的函数:F(x)=x^2+3;

y=f(3)=3^2+3=12;

这里的x叫做自变量,y叫做应变量,计算f(3)的过程就是将3带入函数中的x。自变量叫什么无所谓的。

如果在java中,这个问题应该怎么解决呢?

public static void main(String[] args){
      int y = f(3);
      System.out.println(y);
}
public static int f(int x){
      return x*x+3;
}

在java中,x称为形式参数(形参),同样形参的名字无关紧要,当然“见名思意”的原则不能丢。

f是函数名,名字也是无关紧要,但要体现函数的功能。

public static int f(int x)是函数的声明,函数名前的int是表示函数结果的类型,如果函数没有返回值,则为void。

函数的本质:

函数是实现某个独立功能的一段代码。

函数是一个数据加工的黑箱子,它有输入和输出端,输入的数据经过它的加工,得到最终的输出结果。对于这个黑箱子,我们只需要知道怎么就行了,即需要输入什么,可以得到什么,而无需知道内部细节。

函数的关键在于函数的设计,不是函数的实现。

函数设计的三要素:

  1. 函数名:要根据见名思意的原则结合函数的功能来确定,一般是动词或动名词。如print,printName。如果函数功能是“判断能否。。。”,一般命名为isXXX。
  2. 输入参数:就是要确定要完成这个功能,外部需要传递什么数据进去,这个是函数设计最关键的。
  3. 输出结果:函数是实现某个功能的,一般都有明确的结果,那么我们需要确定这个结果是什么类型。如:boolean isPrime(int i)

解决复杂问题的基本思路就是“大事化小”,这也就是函数的核心作用。

案例:输出1000以内的亲密对数

        题目:判断两个数是否为亲密对数,亲密对数:如果a的所有正因子和等于b,b的所有正因子和等于a,因子包括1但包括本身,且a不等于b,则称a,b为亲密对数。

        设计如下:

题目中反复出现的“因子和”这个概念,所以可以考虑设计一个函数实现求因子之和。

  1. 计算n的因子之和m;
  2. 如果m的因子之和恰好等于n且m≠n是互为亲密数,输出即可。
参考代码:
public class Demo {
    public static void main(String[] args) {
        for (int i = 1;i<=1000;i++){
            int m = sumFact(i);
            if (sumFact(m)==i&&m!=i){
                System.out.printf("%d和%d是亲密对数",m,i);
            }
        }
    }
    private static int sumFact(int n){
        int sum = 0;
        for (int i=1;i<n;i++){
            if (n%i==0){
                sum +=i;
            }
        }
        return sum;
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值