• poj1016


    题目大意:数据统计

    看明白了,就是给你一个数,例如31123314,代表的意思有3个1,1个2,3个3,1个4,但数字本身的有的数字也是有3个1,1个2,3个3,1个4,所以这样的数叫做self-inventorying ,如果经过j步可以变成self-inventorying可以输出self-inventorying after j steps.如果经过j步变成的数跟前面的数一样那就输出enters an inventory loop of length 如果经过15次迭代还无法变成上面的分类,就输出can not be classified after 15 iterations。

    明白意思应该不难了- -,做做去
    学习了string 的应用
    #include<iostream>
    #include<string>
    using namespace std;
    #define maxn 100
    string SelfString(string str)
    {
        int i, a[10]={0};
        string s;
        for(i=0; i<str.length(); i++)
            a[str[i]-'0']++;
        for(i=0; i<10; i++)
        {
            if(a[i])
            {
                while(a[i])
                {
                    s += a[i]%10+'0';
                    a[i] /= 10;
                }
                s += i+'0';
            }
        }
        return s;
    }
    int main()
    {
        string str;
        while(cin >> str, str != "-1")
        {
            string a[maxn];
            int i, j, k=1, ans=0;
            a[0] = str;
            for(i=1; i<=15; i++)
            {
                a[i] = SelfString(a[i-1]);
                if(a[i] == a[i-1])
                {
                    ans = 1;
                    break;
                }
                for(j=0; j<i; j++)
                    if(a[i] == a[j])
                    {
                        ans = 2;
                        break;
                    }
                if(j < i)
                    break;
            }
            if(ans==1 && i==1)
                cout << a[0] <<" is self-inventorying "<<endl;
            else if(ans==1)
                cout << a[0] <<" is self-inventorying after "<< i-1 <<" steps "<<endl;
            else if(i <= 15)
                cout << a[0] <<" enters an inventory loop of length " << i-j <<endl;
            else
                cout << a[0] << " can not be classified after 15 iterations" <<endl;
        }
        return 0;

    } 

  • 相关阅读:
    [Oracle]如何为数据库设置Event(eg: ORA-00235)
    [Oracle]如何为数据库设置Event(eg: ORA-00235)
    C++常用字符串分割方法实例汇总
    C++常用字符串分割方法实例汇总
    C#学习笔记——常量、字段以及事件
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    混淆电路Garbled Circuit介绍
    安全计算实现方法概览
  • 原文地址:https://www.cnblogs.com/liuxin13/p/4383938.html
Copyright © 2020-2023  润新知