蓝桥杯算法提高 递推求值

 我来答
飞起的小蚂蚁
2017-03-16 · TA获得超过1376个赞
知道小有建树答主
回答量:715
采纳率:0%
帮助的人:211万
展开全部
楼主你好(百度终于显示我的回答了^_^)解题思路:首先不难发现对于一个分数可能的答题情况有:2^20=1024种正确为1,错误为0显然这就需要用到二进制数了也就是遍历整数:0~1023每一个整数的二进制数代表一个答题方案(0就表示0000000000十道题全错;1023表示1111111111十道题全对)具体实现代码如下:(非递归算法)#includevoidfun(intn,intscore)//输出答题情况{inta[11],i=1,k=512,sum=10;while(i<11)//求出当前答题情况的二进制表达式(正序求余){a[i]=(n/k)%2;sum=a[i]?sum*2:sum-i;k/=2;i++;}if(sum==score)//如果当前分数等于预定分数就输出答题情况{for(i=1;i<11;i++)printf("%d",a[i]);printf("\n");}}intmain(){inti,score;printf("Enterthescore:");scanf("%d",&score);for(i=0;i<1024;i++)//遍历所有的答题情况fun(i,score);return0;}输出的结果为:101101000001110100000010110011希望能帮助你哈(这是我在自己百度空间共享的解法有注释应该能明白吧)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式