UVa 11549 Calculator Conundrum(STL map)

来源:互联网 发布:淘宝团队代卖产品 编辑:程序博客网 时间:2024/06/10 09:16

题目链接:点击打开链接

题目大意:一个计算器,只能保留n位(每次计算结果的前n位),然后某天你很无聊,想知道从某个数到某个数的范围之间,将这个范围内每个数平方以后计算器上显示的数的最大值是多少。

解题思路:没多想,果断用STL库里的map水过... 没想到还真的可以,而且代码还很短!


#include <iostream>#include <cmath>#include <map>#include <algorithm>#define LL long longusing namespace std;map <LL,LL> cal;int main(){    int t;    LL n,k,mmax;    cin >> t;    while(t--)    {        cal.clear();        cin >> n >> k;        mmax=k;        while(!cal.count(k))        {            cal[k]++;            k*=k;            LL temp=pow(10,n);            while(k>=temp)                k/=10;            mmax=max(mmax,k);        }        cout << mmax << endl;    }    return 0;}


0 0
原创粉丝点击