zoukankan      html  css  js  c++  java
  • 蓝桥杯 -- 奇怪的比赛

    题目描述:

    某电视台举办了低碳生活大奖赛。题目的计分规则相当奇怪:

    每位选手需要回答10个问题(其编号为1到10),越后面越有难度。答对的,当前分数翻倍;答错了则扣掉与题号相同的分数(选手必须回答问题,不回答按错误处理)。

    每位选手都有一个起步的分数为10分。

    某获胜选手最终得分刚好是100分,如果不让你看比赛过程,你能推断出他(她)哪个题目答对了,哪个题目答错了吗?

    如果把答对的记为1,答错的记为0,则10个题目的回答情况可以用仅含有1和0的串来表示。例如:0010110011 就是可能的情况。

    你的任务是算出所有可能情况。每个答案占一行。

    多个答案顺序不重要。

     

    答案写在“解答.txt”中,不要写在这里!

    参考答案:

    0010110011  (0分)

    0111010000  (4分)

    1011010000  (4分)

     

    解题思路:这题方法比较多,可以暴力求解(直接跑十重循环),当然更好的是递归求解。

     1 #include <stdio.h>
     2 #include <string.h>
     3 
     4 void f(int sum,int n,char a[])// sum为分数 n为题号 
     5 {
     6     if (n == 10)  // 满足条件输出 01串 
     7     {
     8         if (sum == 100) puts(a);
     9         return ; 
    10     }
    11     a[n] = '1';     // 答对标记为1,当前分数翻倍 
    12     f(sum+sum,n+1,a);
    13     a[n] = '0';     // 答错标记为0,扣掉与题号相同的分数 
    14     f(sum-n-1,n+1,a); // n从0开始所以要多减 1 
    15 }
    16 int main ()
    17 {
    18     char a[20] = {0};
    19     f(10,0,a);
    20     return 0;    
    21 } 

     

     

  • 相关阅读:
    关于加密程序
    C++11的新特性lambda的小试牛刀RAII
    自动生成makefile的脚本
    关于pcre正则表达式库libpcre
    利用PHP执行SQL文件,将SQL文件导入到数据库
    Linux 系统是否适合于您?
    一个少年电脑病毒作者的独白
    PHP编程效率的20个要点
    JVM源码分析之javaagent原理完全解读
    如何更好的利用Node.js的性能极限
  • 原文地址:https://www.cnblogs.com/yoke/p/6658716.html
Copyright © 2011-2022 走看看