广工15新生赛 大数模拟运算

来源:互联网 发布:二年级体测数据 编辑:程序博客网 时间:2024/05/21 19:22

数字47一向被数学界的人认为是很魔幻的一个数字,和47有关的任务被认为是魔幻任务。某天,doubleegg正在做着这类魔幻任务,路过的奇牛看到了,他说,你研究了老半天,研究出了什么?我来问你个简单的问题,我想知道长度为n位能够被47整除最小的数,你会吗?会吗?吗??由于doubleegg已经被奇牛的气场震晕过去,所以这个魔幻任务只能交给你了,聪明的你,一定想得到的。

Input

 第一行输入一个样例数T(T<=1000)

下面每一行输入一个n(n<=10000)

Output

 每一行输出一个答案,假设不存在,输出-1

Sample Input

12

Sample Output

47

#include<stdio.h>
#include<math.h>
int main()
{
    int a, i, c, f, t, m, n;
    scanf("%d", &t);
    while(t--)
    {
        c = 0;
        scanf("%d", &a);
        if(a == 0)
        {
            printf("-1\n");
        }
        else if(a == 1)
        {
            printf("0\n");
        }
        else if(a == 2)
        {
            printf("47\n");
        }
        else
        {
            m = 1;
            for(i = 0; i < a-1; i++)
            {
                m = m * 10 % 47; //模拟余数运算
            }
            f = 47 - m;
            n = f;
            for(; n!=0;)
            {
                n = n / 10;
                c++;
            }
            for(i = a - c; i > 0; i--)
            {
                if(i == a - c)
                {
                    printf("1");
                }
                else
                {
                    printf("0");
                }
            }
            printf("%d\n", f);
        }
    }
    return 0;
}


0 0