c语言关于递归的问题一道蓝桥杯的问题:某电视台举办了低碳生活大奖赛.题目的计分规则相当奇怪:每位选手需要回答10个问题(其编号为1到10),越后面越有难度.答对的,当前分数翻倍;答

来源:学生作业帮助网 编辑:作业帮 时间:2024/08/06 05:36:03
c语言关于递归的问题一道蓝桥杯的问题:某电视台举办了低碳生活大奖赛.题目的计分规则相当奇怪:每位选手需要回答10个问题(其编号为1到10),越后面越有难度.答对的,当前分数翻倍;答
xT_SX*锁B E\hmf4R}Qf*HQV+ʺ#~'žjwWq:Kr;sn± j҆NYwwwڱtoqnZ/M- 9V݃n h17y%nYl/CvۭXـ On;\s:O7Uuz=,KuK޴7a±Z2ddmSJEo/jx;W: b0XUduV&6腛vнw~d6bF,xKc &gJy!XW9.It&yQӄeAX/ZZ 2$>HZDFi.Uyꮝ-Avڔ%*di/VWYFXQE`A6Oa؛%F(H!rh L4 t) sX3ز y =٭Z=lUS$Y'Y 9|A6jhv[1t]{~keDZ>7~/bGbznbRՒBtLG祔:!L217#2&fg<:Ȓ(!>k7p^`RUuʏQlPꨬ^X"^X@Z8Q@餒HNߒ ڄPyi1踁́[D_9>Wߥods{3efaUER#ő)lRy<SLJ 3ua_Uk1e<tbr-{jQwRs(D

c语言关于递归的问题一道蓝桥杯的问题:某电视台举办了低碳生活大奖赛.题目的计分规则相当奇怪:每位选手需要回答10个问题(其编号为1到10),越后面越有难度.答对的,当前分数翻倍;答
c语言关于递归的问题
一道蓝桥杯的问题:某电视台举办了低碳生活大奖赛.题目的计分规则相当奇怪:每位选手需要回答10个问题(其编号为1到10),越后面越有难度.答对的,当前分数翻倍;答错了则扣掉与题号相同的分数(选手必须回答问题,不回答按错误处理).每位选手都有一个起步的分数为10分.某获胜选手最终得分刚好是100分,如果不让你看比赛过程,你能推断出他(她)哪个题目答对了,如果把答对的记为1,答错的记为0,则10个题目的回答情况可以用仅含有1和0的串来表示.例如:0010110011 就是可能的情况.你的任务是算出所有可能情况.每个答案占一行.
代码:#includeint a[11]={0};void f(int sum,int n);int main(void){ f(10,1); return 0;}void f(int sum,int n){ int i; if(sum==100&&n==11) { for(i=1;i100||n>=11||sum-n

c语言关于递归的问题一道蓝桥杯的问题:某电视台举办了低碳生活大奖赛.题目的计分规则相当奇怪:每位选手需要回答10个问题(其编号为1到10),越后面越有难度.答对的,当前分数翻倍;答
#include<stdio.h>
int a[11]={0};
void f(int sum,int n);
int main(void)
{
    f(10,1);
    return 0;
}
void f(int sum,int n)
{
    int i;
    if(sum==100&&n==11)
    {
        for(i=1;i<=10;i++)
        {
            printf("%d",a[i]);
        }
        printf("\n");
        return;
    }
    else if(n>=11||sum<=0)  //这里有改动
    {
        return;
    }
    a[n]=1;
    f(sum*2,n+1);
    a[n]=0;
    f(sum-n,n+1);
}