zcmu-1057 页码

【题述】

Description

Michael要给自己的一本已经完成的书编上页码。众所周知,第一页页码是1,第二页页码是2,第三页页码是 3,……。而Michael敲一次键盘就能打出一个数字,例如打出1需要敲一次键盘,打出10需要敲两次键盘。页码编完之后,Michael记得自己总共敲了 n次键盘,问Michael的书有多少页。

Input

输入的第一行是整数T(0 < T <= 100),表示测试数据的组数。每一组测试数据只有一行,只有一个整数n(1 <= n <= 1000),表示Michael敲了n次键盘。该行没有其它多余的符号。

Output

如果有解,则输出书的页数。如果无解,输出-1。

Sample Input

3

4

10

11

Sample Output

4

-1

10

扫描二维码关注公众号,回复: 2584737 查看本文章
#include <stdio.h>
int main(){
    int t,i,a;
    double res;
    scanf("%d",&t);
    for(i=0;i<t;i++){
        res=0;
        scanf("%d",&a);
        if(a<=9){
            res=a;
            if(res-(int)res>0)
                res=-1;
            printf("%0.lf\n",res);
        }
        else if(a>9&&a<=90*2+9){
            res=(a-9)/2.0+9;
            if(res-(int)res>0)
                res=-1;
            printf("%0.lf\n",res);
        }
        
        else if(a>90*2+9&&a<=1000){
            res=(a-9-90*2)/3.0+99;
            if(res-(int)res>0)
                res=-1;
            printf("%0.lf\n",res);
        }
        
    }
    
    return 0;
}

猜你喜欢

转载自blog.csdn.net/hzyhfxt/article/details/81258072