起床的烦恼(UPC练习)

题目描述

众所周知,Nono是一只喜欢睡懒觉的熊猫。“我曾经也是早睡早起,直到我膝盖中了一箭”,Nono如是解释道。现在Nono又遇到了一个难题:他睡醒了…但是显然,Nono并不想起床……于是他决定用如下方法来解决这个问题。 Nono从一开始数数,他每数一个数时会计算这个数中1的个数(如211中有两个1)并对1的个数进行累和,当1的个数之和不小于x时,Nono就要起床了。特别需要注意的是,当Nono数数达到10000时,Nono就会因为数太久而再次睡着…… 现在Nono定下了x,他想知道他数到多少就需要起床了(或是他可以再睡一觉)。

输入

有多行。第一行为一个整数T(T<=5000)表示数据组数。
接下来的T行每行是一个整数x(0

输出

有T行。对于每组数据,如果Nono会数到睡着则输出"zzz",否则输出一个数表示Nono需要数到多少。

样例输入 Copy
2
2
5000
样例输出 Copy
10
zzz

代码实现:

#pragma GCC optimize(2)
#include
using namespace std;
int main()
{
    ios::sync_with_stdio;
    cin.tie(0);
    cout.tie(0);
    int a;
    cin>>a;
    int sign;
    while(a--) 
    { 
        sign=0;
        int n,m,sum=0;
        cin>>n;
        for(int i=1;i<10000;i++)
        {  
            m=i;
            while(m!=0)
            {   
                if(m%10==1)
                {
                    sum++;
                }
                m=m/10;
            }
            if(sum>=n)
            {
                cout<                 sign=1;
                break;
            }
 
        }
        if(sign!=1)
            cout<<"zzz"<<"\n";
    }
    return 0;
}

你可能感兴趣的:(算法)