第二十二天:搜索-暴力枚举 + 简单递归

暴力枚举

T1

百鸡问题
时间限制:1 秒
内存限制:32 兆
特殊判题:否

题目描述: 用小于等于 n 元去买 100 只鸡,大鸡 5 元/只,小鸡 3 元/只,还有 1/3 元每只的一种小鸡,分别记为 x 只,y 只,z 只。编程求解 x,y,z 所有可能解。

输入: 测试数据有多组,输入 n。

输出: 对于每组输入,请输出 x,y,z 所有可行解, 按照 x, y, z 依次增大的顺序输出。

样例输入:
40
样例输出:
x=0,y=0,z=100
x=0,y=1,z=99
x=0,y=2,z=98
x=1,y=0,z=99

//
//  main.cpp
//  HundredChick
//
//  Created by Apple on 2019/8/26.
//  Copyright © 2019 Apple_Lance. All rights reserved.
//

#include <iostream>
#include <stdio.h>
using namespace std;

int main(int argc, const char * argv[]) {
    // insert code here...
    int n;
    while(scanf("%d", &n) != EOF){
        for(int x = 0;x <= 100;x++){
            for(int y = 0;x + y <= 100;y++){
                int z = 100 - x - y;
                if(15 * x + 9 * y + z > 3 * n)
                    continue;
                printf("x = %d, y = %d, z = %d\n", x, y, z);
                
            }
        }
    }
    return 0;
}

暴力枚举三要素

  1. 查找空间:在枚举问题中,所有可能构成答案的解组成了其查找空间,枚举过程即枚举查找空间的每一个解,枚举过程中,要做到不遗漏不重复,
  2. 查找目标:查找到一组符合问题问题要求的解--------对枚举的每一个解进行判定
  3. 查找方式:简单的一次遍历所有的解,直到符合要求

递归

T2

递归:函数调用函数本身
注意:避免递归无限发生,设置结束出口,当函数到达某种条件时停止递归

//求 n 阶层的递归程序
int F(int x){
	if(x == 0)
		return 1;
	return x * F(x - 1);
}

汉诺塔 III
时间限制:1 秒
内存限制:32 兆
特殊判题:否

题目描述: 约 19 世纪末, 在欧州的商店中出售一种智力玩具, 在一块铜板上有三根杆, 最左边的杆上自上而下、由小到大顺序串着由 64 个圆盘构成的塔。目的是将最左边杆上的盘全部移到右边的杆上, 条件是一次只能移动一个盘, 且不允许大盘放在小盘的上面。现在我们改变游戏的玩法,不允许直接从最左(右)边移到最右(左)边(每次移动一定是移到中间杆或从中间移出),也不允许大盘放到下盘的上面。Daisy 已经做过原来的汉诺塔问题和汉诺塔 II,但碰到这个问题时,她想了很久都不能解决,现在请你帮助她。现在有 N 个圆盘,她至少多少次移动才能把这些圆盘从最左边移到最右边?

输入: 包含多组数据,每次输入一个 N 值(1<=N=35)。

输出: 对于每组数据,输出移动最小的次数。

样例输入:
1
3
12

样例输出:
2
26
531440

//
//  main.cpp
//  Hannota
//
//  Created by Apple on 2019/8/26.
//  Copyright © 2019 Apple_Lance. All rights reserved.
//

#include <iostream>
#include <stdio.h>

long long F(int num){
    if(num == 1)
        return 2;
    return 3 * F(num - 1) + 2;
}

int main(int argc, const char * argv[]) {
    int n;
    while(scanf("%d", &n) != EOF){
        printf("%lld\n", F(n));
    }
    return 0;
}
发布了182 篇原创文章 · 获赞 101 · 访问量 20万+

猜你喜欢

转载自blog.csdn.net/lancecrazy/article/details/100085159
今日推荐