蓝桥杯省赛PREV-348试题1:算术填符号

这篇具有很好参考价值的文章主要介绍了蓝桥杯省赛PREV-348试题1:算术填符号。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

资源限制

内存限制:256.0MB   C/C++时间限制:1.0s   Java时间限制:3.0s   Python时间限制:5.0s

  匪警请拨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
  ......

  已知的两个答案可以输出,但不计分。

  各个答案的前后顺序不重要。文章来源地址https://www.toymoban.com/news/detail-407135.html

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
 
//a:原先的数组  k:当前的数组的下标  s:由递归所得的字符串 goal:目标数字 
 
void fk(int* a,int k,char* s,int goal)
{
     if(k == 0)
     {
         if(a[0] == goal)
         {
             printf("%d%s\n",a[0],s);
         }//若当前下标为零,则检查是否满足goal,否则直接返回 
        return;
     }
     char* p=malloc(2*k + 1);
     memset(p,0,2*k + 1);//定义字符数组p来储存字符串 
     
     p[0] = '+';
     _itoa(a[k],p + 1,10); //将a[k]转换为字符储存在串中 
     int x = strlen(p);
     strcat(p + x,s);
     fk(a,k - 1,p,goal - a[k]);
     
     p[0] = '-';
     fk(a,k - 1,p,goal + a[k]);
     //分别假设a[k]之前的符号为“+”、“-” 
     int old=a[k - 1];//若a[k]之前无符号,则要合并,合并之前将旧值储存,方便回溯 
     char ak[1024] = {0};
     char ak2[1024]={0};
     _itoa(a[k - 1],ak,10);
     _itoa(a[k],ak2,10);
     strcat(ak,ak2);
     a[k - 1] = atoi(ak);
     memset(p,0,k*2 + 1);
     strcat(p,s);
     fk(a,k - 1,p,goal);
     a[k - 1] = old;
}
 
void main()
{
     int  a[]={1,2,3,4,5,6,7,8,9};
     fk(a,8,"",110);
} 

到了这里,关于蓝桥杯省赛PREV-348试题1:算术填符号的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 十四届蓝桥杯省赛CB

    写的时候没跑出来,仅仅是因为给 (i*i) 加了括号,爆了int!!! 双精度浮点的表示范围:-1.79E+308 ~ +1.79E+308 基本类型:int 二进制位数:32(4字节) 最小值:Integer.MIN_VALUE= -2147483648 (-2的31次方) 最大值:Integer.MAX_VALUE= 2147483647 (2的31次方-1 double范围很大,基本不可能爆,不

    2024年02月08日
    浏览(42)
  • 2019蓝桥杯省赛题目——“数的分解”

    目录 题目 要求 思路 最后的代码 结果 把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包含数字 2 和 4,一共有多少种不同的分解方法? 注意交换 3 个整数的顺序被视为同一种方法,例如 1000+1001+18 和 1001+1000+18 被视为同一种。 这是一道结果填空

    2024年02月14日
    浏览(39)
  • 第十三届蓝桥杯省赛Python 组

    本次所有代码均存放于仓库: Github :GxlHus/Algorithm at 蓝桥杯 (github.com) Gitee :Algorithm: 算法解题 - Gitee.com 原题目:第十三届蓝桥杯大赛软件赛省赛_PB.pdf · AYO/Algorithm - Gitee.com 本次省赛题目总体来说不难,总体质量比较高,尤其是后边几道题,虽然能轻易做出来,但是想跑通所

    2023年04月17日
    浏览(45)
  • 蓝桥杯省赛无忧 STL 课件13 list

    以下是一个示例,展示如何使用listt容器: 在上述示例中,我们首先创建了一个list容器myList,然 后使用push_back()和push_front()函数分别在链表尾部和头 部插入元素。最后,使用范围基于范围的for循环遍历链 表并输出元素。 需要注意的是,由于list是双向链表,因此插入和删除操

    2024年02月02日
    浏览(36)
  • 第九届蓝桥杯省赛——3字母阵列(二维数组)

    仔细寻找,会发现:在下面的8x8的方阵中,隐藏着字母序列:“LANQIAO”。 SLANQIAO ZOEXCCGB MOAYWKHI BCCIPLJQ SLANQIAO RSFWFNYA XIFZVWAL COAIQNAL 我们约定: 序列可以水平,垂直,或者是斜向; 并且走向不限(实际上就是有一共8种方向)。 上图中一共有4个满足要求的串。 下面有一个更大的

    2024年02月15日
    浏览(45)
  • 【十三届蓝桥杯省赛解析javaC组】

    题目描述 解题思路 A题相对比较简单,这题有两种解法 第一种是可以利用记事本把文本复制,然后自己手动排序 第二种是写代码:具体思路是定义一个字符串用来储存问文本,然后把文本转成字符型数组,利用Arrays.sort对字符型数组进行排序,最终实现字符的排序 代码示例

    2023年04月20日
    浏览(39)
  • 2019 第十届蓝桥杯省赛A组题解

    本次试题难度(对专业算法竞赛选手来说)不大,但是考验基本的编程基本功和数学思维。估计完成80%即可获得省一进入决赛(根据一些公开的反馈,如果有准确数据请告诉我),因此更多的是需要细心。 至于C/C++还是Java我觉得不重要,因为题目除了顺序有点不同,内容是一

    2023年04月09日
    浏览(46)
  • 【蓝桥杯省赛真题18】python阴影图形面积 青少年组蓝桥杯python编程省赛真题解析

    目录 python阴影图形面积 一、题目要求 1、编程实现 2、输入输出

    2023年04月23日
    浏览(39)
  • 第十四届蓝桥杯省赛C++ A组浅析

    (仅个人看法,对错未知,可以当做口胡QAQ)如有错误请大佬们指出,有更好做法欢迎留言! 暴力判不多说了 看到很多搜的,提供一个dp做法 d p [ i ] [ j ] 表示前 i 道题,答对 j 道的方案数 dp[i][j]表示前i道题,答对j道的方案数 d p [ i ] [ j ] 表示前 i 道题,答对 j 道的方案数

    2023年04月13日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包