Bootstrap

深入浅出学算法002-n个1

任务内容

Description 由n个1组成的整数能被K(K<10000)整除,n至少为多少?

Input

多组测试数据,第一行输入整数T,表示组数 然后是T行,每行输入1个整 数代表K

Output

对于每组测试数据输出1行,值为n

Sample Input

1
11

Sample Output

2

#include<stdio.h>  
#include<stdlib.h>  
int main()
{
    int t;

    // 外层循环,持续读取输入直到遇到文件结束符(EOF)
    while (scanf("%d", &t)!= EOF)  
    {
        // 内层循环,根据外层循环读取到的t值进行t次循环操作
        while (t--)  
        {
            int k;
            scanf("%d", &k);  // 读取一个整数k

            // 如果k的值为1,直接输出1并跳过本次内层循环的后续操作,进入下一次内层循环
            if (k == 1)  
            {
                printf("1\n");
                continue;
            }

            int c = 1;  // 初始化变量c为1,用于记录某种操作的次数
            int temp = 1;  // 初始化变量temp为1,用于后续的计算操作

            // 循环执行,直到temp的值变为0
            while (temp!= 0)  
            {
                // 将temp乘以10后再加1,模拟某种数字的生成操作
                temp = temp * 10 + 1;  
                // 对temp进行取模运算,使其值保持在一定范围内(与k相关)
                temp = temp % k;  
                c++;  // 每执行一次循环,操作次数c加1
            }

            printf("%d\n", c);  // 输出操作次数c的值
        }
    }

    return 0;
}

;