#P315. 练53.2 小明做题

#include <bits/stdc++.h>
using namespace std;
int a[1000010];
int b[1000010];
double c=0;
int n,p; 
int main()
{
    cin>>n;
    int d=INT_MIN;
    for(int i=1;i<=n;i++){
        cin>>a[i]>>b[i];
        c=b[i]*1.0/a[i];
        if(c>d){
            d=c;
            p=i;
        }
    }
    cout<<p;
}

策略模式和工厂方法模式都是常用的软件设计模式。其中,策略模式是一种行为型模式,它定义了一系列算法,并将每个算法封装起来,使得它们可以相互替换。而工厂方法模式是一种创建型模式,它定义了一个用于创建对象的接口,让子类决定实例化哪一个类。两者的区别主要在于它们的用途和解决的问题不同。 策略模式旨在解决如何在运行时根据需要选择算法的问题。它允许用户定义一系列算法,并将它们封装在独立的类中,从而使得它们可以相互替换。这样,用户就可以在运行时根据需要选择算法,无需修改原有代码。策略模式适用于需要在运行时根据不同情况选择不同算法的场景。 工厂方法模式旨在解决如何通过类来创建对象的问题。它定义了一个用于创建对象的接口,让子类来决定实例化哪一个类。这样,用户就可以在运行时动态创建对象,而无需知道实际创建的类是哪一个。工厂方法模式适用于需要动态创建对象的场景。 因此,策略模式和工厂方法模式的区别在于它们解决的问题不同。策略模式解决算法的选择问题,而工厂方法模式解决对象的创建问题。 <<参考文献>>: Design Patterns: Elements of Reusable Object-Oriented Software. Gamma, E. et al., 1994, p315. https://en.wikipedia.org/wiki/Strategy_pattern https://en.wikipedia.org/wiki/Factory_method_pattern
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值