深入浅出学算法002-n个1
任务内容
Description 由n个1组成的整数能被K(K<10000)整除,n至少为多少?
Input
多组测试数据,第一行输入整数T,表示组数 然后是T行,每行输入1个整 数代表K
Output
对于每组测试数据输出1行,值为n
Sample Input
1
11Sample 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的值变为0while (temp!= 0) {// 将temp乘以10后再加1,模拟某种数字的生成操作temp = temp * 10 + 1; // 对temp进行取模运算,使其值保持在一定范围内(与k相关)temp = temp % k; c++; // 每执行一次循环,操作次数c加1}printf("%d\n", c); // 输出操作次数c的值}}return 0;
}