c语言关于递归的问题一道蓝桥杯的问题:某电视台举办了低碳生活大奖赛.题目的计分规则相当奇怪:每位选手需要回答10个问题(
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/05 18:54:04
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
一道蓝桥杯的问题:某电视台举办了低碳生活大奖赛.题目的计分规则相当奇怪:每位选手需要回答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
#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);
}
再问: 谢谢啦 你能再详细说一下为什么这样改就可以了呢? 费解
再答: 画蛇添足的判断条件
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);
}
再问: 谢谢啦 你能再详细说一下为什么这样改就可以了呢? 费解
再答: 画蛇添足的判断条件
某次演唱比赛,需要加试综合素质测试,每位参赛选手需回答三个问题,组委会为每位选手都备有10道不同的题目可供选择,其中有6
某次演唱比赛,需要加试综合素质测试,每位参赛选手需回答三个问题,组委会为每位选手都备有10道不同的题目可供选择,其中有6
某次演唱比赛,需要加试文化科学素质,每位参赛选手需加答3个问题,组委会为每位选手都备有10道不同的题目可供选择,其中有5
一道关于C语言函数的问题.
阅读文段,回答问题。 人类的低碳生活
问一道C语言的问题 关于逻辑运算
一道关于C语言求一元二次方程根的问题
(2010•崇明县二模)某校组织科普知识竞赛,每位选手需要回答三个问题.竞赛规则规定:每题回答正确得100分;回答不正确
一道有关C语言的简单问题
一道用C语言解决的问题
acm的一道c语言问题
一道C语言指针的问题