UVA 11384 - Help is needed for Dexter

来源:互联网 发布:淘宝上有没有微信号卖 编辑:程序博客网 时间:2024/05/16 18:34

看了这题,我和我的小伙伴就惊呆了!!!

被前面的麻将题啊,立方体啊搞个半死

麻将那题等平静了在来敲,还没看作者的思路^ ^

PS:输入输出流速度貌似很慢,用scanf和printf只要.0.052就出来了,而用cin,cout竟然要0.405!!!

一开始用输入流吓了我一跳,我以为效率咋这么低呢。

看了书发现方法一样,就改成了scanf,printf。。。。

以后果断不用流来做题了。

好了,不说废话

题目大意:

给定正整数N,你的任务是把序列1,2,……n中的所有书全部变为0,每次操作可以从序列中选择一个或者多个整数,同时减去一个相同的正整数。比如1,2,3可以吧2和3同时减少2,得到1,0,1。

很简单的方法:直接把后一般砍掉,那么就和前一半一样了。如1,2,3,4,5,6 一开始4,5,6砍掉4那么变成了1,2,3,0,1,2,,而这里的操作次数取决于1,2,3,。所以ans(n)=(ans/2)+1


#include<iostream> #include<cstdio>using namespace std; int ans(int n){return n==1? 1:ans(n/2)+1;}int main()  {int n;while(scanf("%d",&n)!=EOF){printf("%d\n",ans(n));}}


原创粉丝点击