2013-11-06 实验之趣味110算式(递归求解思维)
来源:互联网 发布:淘宝游戏点卡货源 编辑:程序博客网 时间:2024/06/05 15:33
题目:
匪警请拨110,即使手机欠费也可拨通!
为了保障社会秩序,保护人民群众生命财产安全,警察叔叔需要与罪犯斗智斗勇,因而需要经常性地进行体力训练和智力训练!
某批警察叔叔正在进行智力训练:
1 2 3 4 5 6 7 8 9 = 110;
请看上边的算式,为了使等式成立,需要在数字间填入加号或者减号(可以不填,但不能填入其它符号)。之间没有填入符号的数字组合成一个数,例如:12+34+56+7-8+9 就是一种合格的填法;123+4+5+67-89 是另一个可能的答案。
请你利用计算机的优势,帮助警察叔叔快速找到所有答案。
每个答案占一行。形如:
12+34+56+7-8+9
123+4+5+67-89
......
思想:先将这9个数分组,分组组成连续的数,如123,45, 678,9为其中的一个。分组的思想为9的递归拆分。最后110也是递归拆分,分+和-两种。
程序实现:
#include<stdio.h>#include<stdlib.h>int seeds[] = {1, 2, 3, 4, 5, 6, 7, 8, 9 };int saveNum[9];int save_temp_nums[9];char saveOperate[9];int produce_nums(int p, int count){int temp = 0;int i;int x = 1;for(i = count - 1; i >= p; i--){temp += seeds[i] * x;x *= 10;}return temp;}void generate_final_alg(int temp, int num, int i){if(i == num){if(temp == 0){int j;for(j = 0; j < num; j++){if(j > 0){printf("%c", saveOperate[j]);}printf("%d", save_temp_nums[j]);}printf("=110\n");return;}else{return;}}saveOperate[i] = '+';generate_final_alg(temp - save_temp_nums[i], num, i + 1);saveOperate[i] = '-';generate_final_alg(temp + save_temp_nums[i], num, i + 1);}void produce_efficent_Nums(int num){int i;int temp;int p = 0;int count = 0;for(i = 0; i < num; i++){save_temp_nums[i] = produce_nums(p, saveNum[i] + count);p += saveNum[i];count += saveNum[i];}generate_final_alg(110 - save_temp_nums[0], num, 1);}void fun(int temp, int num){if(temp == 0){//int j;//for(j = 0; j <num; j++){//printf("%d ", saveNum[j]);//}//printf("\n");produce_efficent_Nums(num);}int i;for(i = 1; i <= temp; i++){saveNum[num] = i;fun(temp - i, num + 1);}}void divide_array(int seeds[]){//printf("%d\n", sizeof(seeds)); 4fun(9, 0);}int main(void){//printf("%d\n", sizeof(seeds)); 36divide_array(seeds);return 0;}
- 2013-11-06 实验之趣味110算式(递归求解思维)
- 趣味算式 蓝桥杯 110 递归
- 2013-10-30 实验之古堡算式(思维逻辑题)
- 2013-11-07 实验之火柴游戏(递归思维逻辑,转化思维,查找最优解思维)
- 蓝桥杯之趣味算式
- 2013-11-13 实验之整数划分(递归求解思想,条件判断输出)
- 趣味算式(蓝桥杯)
- 算法题 趣味算式110
- 2013-11-08 实验之数独游戏(寻找所有解,局部简化思维,递归逻辑思维)
- 趣味算式
- 趣味算式
- 趣味算式
- 趣味算式
- 2016蓝桥杯假期任务之《趣味算式》
- 2013-11-02 实验之泊松分酒(思维逻辑题)
- 算式求解
- 趣味小算法之递归
- 软件大赛--趣味算式
- this kernel requires an x86-64 CPU, but only detected an i686 CPU. unable to boot - please ues a ker
- 给 action 绑定 回调函数
- perl中or die....的原理
- 万年历
- Valgrind
- 2013-11-06 实验之趣味110算式(递归求解思维)
- 北大ACM 1005 AC了 欢迎查阅
- kamailio/opensips snmp/cacti/zabbix监控
- original-package
- archlinux安装流程
- POJ 3070 矩阵快速幂求斐波那契数列
- 玩家就是宇宙,而你就是那个玩家——谈Minecraft
- 编译VTK的MFC库
- C#全局键盘钩子