解析:  只要方法想到,问题其实很简单。首先编写一个Mod函数判断一个很大的数能否被n整除,再不断的把由1组成的字符串往上磊,直到能被n整除。

   时间的复杂度无法计算!

 1 #include <stdio.h>
 2 #include <string.h>
 3 static int Mod(int n, char *p);
 4 int main()
 5 {
 6     char buff[100000];
 7     int n, i;
 8     while(scanf("%d", &n) == 1){
 9         i = 0;
10         while(1){
11             buff[i] = '1';
12             buff[i+1] = '\0';
13             if(Mod(n,buff) == 0)
14                 break;
15             i++;
16         }
17         printf("%d\n", i+1);
18     }
19     return 0;    
20 }
21 /*求p mod n 的值*/
22 static int Mod(int n, char *p)
23 {
24     int i, l, m = 0;
25     l = strlen(p);
26     for(i = 0; i < l; i++){
27         m = m * 10 + (p[i] - '0');  /*下一位被除数数*/
28         m = m % n;                  /*余数*/
29     }
30     return m;
31 }