当前位置: 首页 > 问题分类 > 计算机类考试 > 软考中级 > 问题详情
问题

● 设商店有 10 元、5 元、2 元和 1 元的零币,每种零币的数量充足。售货员给顾客找零钱时,零币的数量越少越好。例如给顾客找零 29 元:先选 2 张 10 元币,然后选择 1张5元币,再选择两张2元币。以上的找零钱方法采用了(62) 策略。

(62)

A. 分治

B. 贪心

C. 动态规划

D. 回溯

参考答案
正确答案:B

您可能感兴趣的试题
  • 请将该关系模式分解成BCNF的关系模式,确定主关系键。

  • 阅读下列Java程序和程序说明,将应填入(n)处的字句写在对应栏内。

    【说明】StringEditor类的功能是:已知一个字符串,返回将字符串中的非字母字符都删除后的字符串。

    public (1) {

    public static String removeNonLetters( (2) ){

    StringBuffer aBuffer=(3);

    char aCharacter;

    for(int i=0; i<original.length();i++){

    aCharacter=(4);

    if(Character.isLetter(aCharacter))

    aBuffer.append( (5) );

    }

    return new String(aBuffer);

    }

    }

    public class StringEditorTester{

    public static void main(String args[]){

    String riginal="Hi!, My Name is Mark, 234I think you are my classmate?!!";

    System.out.println(StringEditor.removeNonLetters(original));

    }

    }

  • 阅读下列函数说明和C代码及流程图,将应填入(n)处的字句写在对应栏内

    [说明]

    分糖果问题是一个经典问题。问题描述如下:幼儿国有n(<20)个孩子围成一圈分糖果,老师先随机地发给每个孩子若干颗糖果,然后按以下规则调整:每个孩子同时将自己手中的糖果分一半给坐在他右边的小朋友;如共有8个孩子,则第1个将原来的一半分给第2个,第2个将原有的一半分给第3个……第8个将原来的一半分给第1个,这样的平分动作同时进行;若平分前,某个孩子手中的糖果是奇数颗,则必须从老师那里要一颗,使他的糖果变成偶数。小孩人数和每个小孩的初始数由键盘输入。经过多少次调整,使每个孩子手中的糖果一样多,调整结束时每个孩子有糖果多少颗,在调整过程中老师又新增发了多少颗糖果。

    [C程序]

    include <stdlib.h>

    include <stdio.h>

    bool allequall (int child[], int n ) //判断各小孩子手中的糖果是否相等

    {

    for ( int i=0; i<n-1; i++)

    if (child[i]!=child[i+1] )

    return false; //不相等返回假

    return true; //相等返回真

    }

    const int MaxNum=20; //定义最大人数

    //主函数

    void main ( )

    {

    int Num=0;

    int *child;

    int *child1;

    //构造两个相应大小的数组child代表小朋友现有的粮果数child1代表小朋友原来有的糖果数

    int Tnum=0;

    int i=0;

    do{

    printf ( "Pelase input the number of the children: ").,

    scanf ( "%d",&Num );

    if ( Num>MaxNum )

    printf ( "Error Number!!" );

    } while ( Num>MaxNum );

    child=new int [Nmn];

    child1=new int [Num];

    for ( i=0; i<Num; i++ ) //将数组赋值

    {

    printf ( "Input NO. %d child's candy numbers: ",i+1);

    scanf ( "%d", &child[i] );

    }

    while ( (1) )

    {

    for (i=0; i<Num; i++ )

    {

    if( (2) )

    {

    (3)

    Tnum++;

    }

    }

    for ( i=0; i<Num; i++ )

    child1[i]=child[i]; //将child1赋值用来记忆原来小朋友的粮果数

    for ( i=0; i<Nam; i++ )

    (4)

    for (i=0; i<Num-1; i++)//用循环实现前一个小朋友粮果数加后一个小朋友粮果数的一半

    {

    child[i]/=2;

    child[i]+=child 1 [i+1];

    }

    child[Num-1]/=2;

    (5)

    }

    printf ( "每个同学最后分到糖果数目是%d\n", child[1]);

    printf ( "老师分发出的糖果是%d\n", Tnum );

    }

    图12-7是一种解决问题的流程图,请根据该流程图将对应C代码(n)处补充完整。

  • 阅读下列说明和Java代码,应填入(n)处。

    【说明】

    某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如表10-7所示:

    为支持将来能够模拟更多种类鸭子的特征,采用策略设计模式(Strategy)设计的类图如图10-12所示:

    其中,Duck为抽象类,描述了抽象的鸭子,而类RubberDuck、MallardDuck、 CottonDuck 和 RedHeadDuck分别描述具体的鸭子种类,方法fly()、quack()和display()分别表示不同种类的鸭子都具有飞行特征、发声特征和外观特征;接口FlyBehavior与 QuackBehavior分别用于表示抽象的飞行行为与发声行为;类FlyNoWay与FlyWithWings分别描述不能飞行的行为和用翅膀飞行的行为;类Quack、Squeak与QuackNoWay分别描述发出“嘎嘎”声的行为、发出橡皮与空气摩擦声的行为与不发声的行为。请填补以下代码中的空缺。

    【Java代码】

    (1) FlyBehavior{

    public void fly();

    };

    (2) QuackBehavior{

    public void quack();

    };

    class FlyWithWings implements FlyBehavior{

    public void fly(){System.out.println(“使用翅膀飞行!”);}

    };

    class FlyNoWay implements FlyBehavior{

    public void fly(){System.out.println(“不能飞行!”);}

    };

    class Quack implements QuackBehavior{

    public void quack(){System.out.println(“发出\‘嘎嘎\’声!”); }

    };

    class Squeak implements QuackBehavior{

    public void quack(){System.out.println(“发出空气与橡皮摩擦声 !”);

    }

    };

    class QuackNoWay implements QuackBehavior{

    public void quack(){System.out.println(“不能发声!”);}

    };

    abstract class Duck{

    protected FlyBehavior (3);

    protected QuackBehavior (4);

    public void fly(){ (5); }

    public void quack() { (6);};

    public (7) void display();

    };

    class RubberDuck extends Duck{

    public RubberDuck(){

    flyBehavior=new (8);

    quackBehavior=new (9);

    }

    public void display(){/*此处省略显示橡皮鸭的代码*/ }

    };

    //其他代码省略