您的位置:首页 > 其它

BZOJ 1192 鬼谷子的钱袋

2015-07-11 21:01 225 查看
        这道题比较简单,唯一的问题在于范围太大,暴力的方法是过不了的,因此不妨借用一下数学知识,相信不少人在小学竞赛做过这样一道题:老板有一串七个银环,只能切两次,员工每天要另一个银环该怎么办?这道题的答案很简单,分为一、二、四三段,我们不妨把题目延伸一下,数据扩大一点,便会得出这样的规律,我们只需分出2的所有此方的长度,便可以保证拿到任意数量的银环,所以这道题的做法就出来了。

#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<cmath>

using namespace std;

int i_money;
int i_temp=1,i_times;

int main()
{
cin>>i_money;

do
{
i_money=i_money-i_temp;
i_times=i_times+1;
i_temp=i_temp*2;
}while(i_money>0);

cout<<i_times<<endl;

return 0;
}


感谢各位观看我的博客,希望能对您有所启发,谢谢。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: